Прежде всего вам нужно сформировать набор параметров в json:
PHP example:
// creating parameters and signatures
$token = '';
$secret = '';
$params = [
'partner_token' => $token,
'target_element' => 'widget-container',
'timestamp' => (int) (microtime(true) * 1000),
'from_amount' => '3000',
'from_currency' => 'USD',
'lang' => 'EN',
];
ksort($params);
$data = [];
foreach ($params as $key => $value) {
$data[] = "$key:$value";
}
$data = join(";", $data);
$hash = hash_hmac('sha512', $data, $secret);
$params['signature'] = $hash;
Далее необходимо подключить скрипт, добавить контейнер и указать ранее сформированные параметры:
<!-- add js script -->
<script src="<https://pay.itez.com/static/main/share/merchant.js>"></script>
<!-- add container: id of container may be various but you must set it into parameters -->
<div id="widget-container"></div>
<!-- initialise the widget -->
<script type="text/javascript">
ItezWidget.run(
<?php echo json_encode($params); ?>
);
</script>
Список поддерживаемых языков и варианты написания значений:
Если необходимо получать информацию о состоянии виджета в моменте, то для этого предусмотрены js события, для которых можно задавать различные действия. Например, если человек успешно провел покупку автоматически и его необходимо перенаправить на следующую страницу.
JS событие указывается в списке общих параметров, например:
params.onOperationSuccess = function (data) {
console.log('%conOperationSuccess','color: red');
console.log('%conOperationSuccess-data','color: yellow', data);
}
А инициализация виджета происходит командой:
ItezWidget.run(params, 'POST');
Список js событий с описанием приведен ниже:
1) onLoaded(size_t size); - Завершение загрузки контента виджета
2) onError(error_t error); - Ошибка в работе виджета, которая не позволяет продолжить процесс
3) onResize(size_t size); - Изменение размеров документа внутри iframe-виджета
4) onExit(); - Закрытие виджета, не содержит данных
5) onStarted(); - Работа виджета начата с начальной точки (вызывается при каждом сбросе на начало)
6) onOperationCreated(string operation_id); - Регистрация операции в процессинге
7) onPaymentSent(); - Отправка платежных данных — пользователь нажал на Оплатить, не содержит данных
8) onOperationSuccess(operation_data_t operation_data); - Успешное проведение операции
9) onOperationFail(operation_data_t operation_data); - Неуспешное проведение операции
10) onOperationPending(operation_data_t operation_data); - Проведение операции в процессе