Платежный виджет

Виджет - всплывающая платежная форма для ввода реквизитов плательщика без перехода пользователя на сайт платежного шлюза.
Отсутствие перенаправления на другие сайты - исключается риск потерь клиента при переходе из корзины на страницу оплаты.Сайту нет необходимости получать сертификацию PCI DSS - фактически оплата проходит на стороне  Wayforpay, а визуально, на стороне сайта.

 



Для инициализации платежного виджета необходимо использовать следующий скрипт:

<script id="widget-wfp-script" language="javascript" type="text/javascript" src="https://secure.wayforpay.com/server/pay-widget.js"></script>

<script type="text/javascript">
var wayforpay = new Wayforpay();
var pay = function () {
wayforpay.run({
merchantAccount : "test_merch_n1",
merchantDomainName : "www.market.ua",
authorizationType : "SimpleSignature",
merchantSignature : "b95932786cbe243a76b014846b63fe92",
orderReference : "DH783023",
orderDate : "1415379863",
amount : "1547.36",
currency : "UAH",
productName : "Процессор Intel Core i5-4670 3.4GHz",
productPrice : "1000",
productCount : "1",
clientFirstName : "Вася",
clientLastName : "Васечкин",
clientEmail : "some@mail.com",
clientPhone: "380631234567",
language: "UA"
},
function (response) {
// on approved
},
function (response) {
// on declined
},
function (response) {
// on pending or in processing
}
);
}
</script>

<button type="button" onclick="pay();">Оплатить</button>

Набор параметров запроса соответствует описанным параметрам запроса из раздела Принять платеж (Purchase).

 

 

Аутентификация запросов

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchantAccount, merchantDomainName, orderReference, orderDate, amount, currency, productName[0], productName[1]..., productName[n], productCount[0], productCount[1],..., productCount[n], productPrice[0], productPrice[1],..., productPrice[n]  разделенных “;” (точка с запятой) в кодировке UTF-8

 

Для выполнения верификации карты в виджете необходимо передать параметр "requestType":

wayforpay.run({ ... requestType: "VERIFY" });

 

Параметр "straightWidget" определяет открытие виджета на мобильных устройствах вместо перенаправления на мобильную версию страницы оплаты:

wayforpay.run({ ... straightWidget: true });

 

Для закрытия виджета в функции-обработчике события достаточно вызвать метод  wayforpay.closeit();

Параметр response в обработчиках событий является объектом, содержащим подписанные данные с результатом выполнения операции.

Дополнительно, при наступлении определенных событий в родительское окно с помощью метода postMessage посылаются сообщения:

  • WfpWidgetEventApproved - при успешном завершении операции
  • WfpWidgetEventDeclined - при неуспешном завершении;
  • WfpWidgetEventPending - транзакция на обработке;
  • WfpWidgetEventClose - при закрытии виджета пользователем.

 

Для оплаты инвойса с помощью виджета

<script id="widget-wfp-script" language="javascript" type="text/javascript" src="https://secure.wayforpay.com/server/pay-widget.js"></script>

<script type="text/javascript">
var wayforpay = new Wayforpay();
var pay = function () {
wayforpay.invoice('<invoiceUrl>');
}
</script>

<button type="button" onclick="pay();">Оплатить</button>

где </invoiceUrl>  - ссылка на страницу оплаты инвойса, например 'https://secure.wayforpay.com/invoice/ie01a84b32807'

 

Если необходимо всегда открывать виджет (без ухода с Вашей страницы даже на мобильных устройствах), нужно в функции вызова wayforpay.invoice передать второй параметр со значением true:

...

wayforpay.invoice('https://secure.wayforpay.com/invoice/ie01a84b32807', true);

...