Получение и обработка информации о действиях пользователя на Payment Page
Сгенерированная платежная страница может синхронно передавать на страницу сайта информацию о действиях пользователя, а также позволяет вам реализовать собственные функции-обработчики для произвольной обработки этих действий на сайте. Вот некоторые действия пользователя на сайте которые можно обработать с применением функций-обработчиков:
- выбор вкладки;
- выбор любых переключателей: сумма, сохранение реквизитов;
- изменение значений полей ввода: счета, телефоны, префиксы, кроме секретных данных;
- отправка запроса на оплату или выплату.
Названия и код функций-обработчиков указываются в строке вызова самого виджета. В следующих разделах подробнее рассказывается, как передавать эту информацию при вызове виджета.
Предварительная настройка
<link rel="stylesheet" href="https://paymentpage.rocketpay.kz/shared/merchant.css" /> <script type="text/javascript" src="https://paymentpage.rocketpay.kz/shared/merchant.js"></script>
Никаких дополнительных операций по конфигурированию среды для обработки событий не требуется.
Реализация функций-обработчиков событий
При выполнении пользователем некоторых операций на веб-странице инициируются те или иные события, которые можно обрабатывать с помощью пользовательских функций-обработчиков. При возникновении событий автоматически вызываются функции, определения которых были ранее переданы при вызове виджета. Вот пример вызова виджета с определением функции onResize, которая будет автоматически вызываться при событии изменения размера окна:
EPayWidget.run({
payment_id: 'X03936',
payment_amount: 2035,
payment_currency: 'USD',
project_id: 22,
signature: 'YWb6Z20ByxpQ30hfTIjaCCsVIwVynXV',
onResize: function (data) {
site.resize({
myWidth: data.width,
myHeight: data.high
});
},
}, 'POST');
onResize— название функции-обработчика с указанием события (изменение размера), которое эта функция обрабатывает, а выделенный курсивным начертанием текст — код функции, которая будет автоматически выполняться при возникновении события.data— JavaScript-объект, в котором передается информация, относящаяся к выбранному событию. В частности, в этом примере в объектеdataпередаются новая ширина и высота окна после изменения его размера. Эти значения функция-обработчик присваивает переменнымmyWidthиmyHigh, соответственно. Более подробная информация о содержащихся в JavaScript-объектеdataданных приведена в таблице далее в этом разделе
Надо понимать, что эта функция-обработчик события не присутствует в подключаемых к веб-странице библиотеках напрямую — код этих функций передается при вызове виджета. Иначе говоря, чтобы обеспечить вызов такой функции надо при вызове виджета, помимо кода вызова самого виджета для каждого перехватываемого события указать код функции-обработчика. В коде функции-обработчика можно обращаться к объекту data, в котором в функцию-обработчик передается информация, относящаяся к перехватываемому событию.
В следующей таблице перечислены поддерживаемые функции-обработчики событий вместе с описанием событий и примерами данных, передаваемых в JavaScript-объекте data.
| Название функции-обработчика события | Описание обрабатываемого события | Пример data |
|---|---|---|
| onResize | Изменение размеров документа внутри iframe-виджета |
РазвернутьСвернуть
|
| onLoaded | Завершение загрузки контента виджета |
РазвернутьСвернуть
|
| onPaymentSuccess | Успешная оплата |
РазвернутьСвернуть
{
"sum_request":{
"amount":99,
"currency":"EUR"
},
"request_id":"f68d1288e3e37b0ded8763d94588dd2915c5dfadb5024",
"transaction":{
"id":2000000004,
"date":"2019-02-28T11:14:49+0000",
"type":"purchase"
},
"payment":{
"method":"card",
"date":"2019-02-28T11:14:49+0000",
"result_code":"0",
"result_message":"Success",
"status":"success",
"is_new_attempts_available":false,
"attempts_timeout":0,
"id":"EP394c-56d4",
"provider_id":3
},
"sum_real":{
"amount":99,
"currency":"EUR"
},
"customer":{
"id":"1"
},
"status":"success",
"account":{
"number":"555555******4444",
"type":"mastercard",
"card_holder":"FG FG",
"id":37489,
"expiry_month":"07",
"expiry_year":"2021"
},
"rrn":"000047769105",
"auth_code":"563253",
"project_id":140,
"description":"",
"operations":[{
"id":2000000004,
"type":"sale",
"status":"success",
"date":"2019-02-28T11:14:49+0000",
"processing_time":"2019-02-28T11:14:49+0000",
"sum":{
"amount":99,
"currency":"EUR"
},
"code":"0",
"message":"Success"
}
],
"return_url":"http://pp/process/complete-redirect?0ebeqgdcgbsj3d278b46",
"signature":"EjYXLJpvDBPtbwQSQ0u...ZTtNz2Vm33AA=="
} |
| onPaymentFail | Отклонение оплаты |
РазвернутьСвернуть
{
"sum_request":{
"amount":99,
"currency":"EUR"
},
"request_id":"f68d1288e3e37b0ded8763d94588dd2915c5dfadb5024",
"transaction":{
"id":2000000004,
"date":"2019-02-28T11:14:49+0000",
"type":"purchase"
},
"payment":{
"method":"card",
"date":"2019-02-28T11:14:49+0000",
"result_code":"10106",
"result_message":"expired",
"status":"decline",
"is_new_attempts_available":false,
"attempts_timeout":0,
"id":"EP39456d4",
"provider_id":3
},
"sum_real":{
"amount":99,
"currency":"EUR"
},
"customer":{
"id":"1"
},
"status":"success",
"account":{
"number":"555555******4444",
"type":"mastercard",
"card_holder":"FG FG",
"id":37489,
"expiry_month":"07",
"expiry_year":"2021"
},
"rrn":"000047769105",
"auth_code":"563253",
"project_id":140,
"description":"",
"operations":[{
"id":2000000004,
"type":"sale",
"status":"decline",
"date":"2019-02-28T11:14:49+0000",
"processing_time":null,
"sum":{
"amount":99,
"currency":"EUR"
},
"code":"10106",
"message":"expired"
}
],
"return_url":"http://pp/process/complete-redirect?0ebeqgdcgbsj3d278b46",
"signature":"EjYXLJpvDBPtbwQSQ...aZTtNz2Vm33AA=="
} |
| onExit | Закрытие виджета, не содержит данных | - |
| onPaymentSent | Отправка платежных данных — пользователь нажал на Оплатить, не содержит данных | - |
| onWalletSelect | Выбор сохраненных платежных данных |
РазвернутьСвернуть
|
| onWalletRemove | Удаление сохраненных платежных данных |
РазвернутьСвернуть
|
| onTokenizeSuccess | Создание токена для банковской карты |
РазвернутьСвернуть
|
| onFailLoading | Ошибка при загрузке виджета |
РазвернутьСвернуть
|
| onPaymentSubmitResult | Регистрация запроса в платежной платформе |
РазвернутьСвернуть
|
| onShowClarificationPage | Открытие страницы для ввода дополнительных данных о платеже | - |
| onSubmitClarificationForm | Подтверждение отправки дополнительных данных о платеже | - |