Перейти до основного вмісту

Розширені можливості

Використання номерів замовлень в запитах

Якщо при ініціалізації платіжного віджета не передавати параметр orderId, кожна нова сесія віджета буде створюватися з автоматично згенерованим номером замовлення. Для використання власного номеру замовлення в запиті на ініціалізацію віджета, необхідно передавати відповідне значення, використовуючи параметр orderId. Це також дозволить відобразити вже існуючий платіж, якщо сесія віджета з таким orderId вже була раніше створена.

Приклад ініціалізації віджета з передачею номера замовлення:

<script>
const widget = PaymentWidget.init({
apiKey: 'YOUR_API_KEY',
mode: 'popup',
payment: {
type: 'hold',
orderId: '1002289582',
description: 'Payment #1002289582',
amount: 1.99,
currency: 'UAH',
serverUrl: 'https://myshop.ua/payment/notify'
}
});
</script>

Обробка івентів

Для обробки івентів платіжного віджета необхідно зареєструвати функцію зворотного виклику. Для цього в код ініціалізації віджета треба додати виклик методу on(eventName, callback) з передачею назви події та функції зворотного виклику.

Приклад ініціалізації віджета з реєстрацією функцій для обробки подій:

<script>
PaymentWidget.init({
apiKey: 'YOUR_API_KEY',
mode: 'popup',
payment: {
type: 'hold',
amount: 1.99,
currency: 'UAH'
}
}).on('widget.ready', function(data){
// ready
}).on('widget.error', function(data){
// error
}).on('payment.success', function(data){
// success
}).on('payment.failed', function(data){
// failed
});
</script>

Платіжний віджет підтримує відправку таких івентів:

Event NameDescription
widget.readyPayment widget has been successfully initiated
widget.errorAn error occurred during the initialization of the payment widget
payment.successPayment has been successfully completed
payment.failedPayment has failed

Передача інформації про продукти

В запиті на ініціалізацію платіжного віджета також можна передати список продуктів. Ці продукти будуть включені до запиту на створення платежу. Наразі список продуктів на самому платіжному віджеті не відображається

Важливо

При фіскалізації платежів за допомогою ПРРО передача в запиті інформації про продукти є обовʼязковою.

Передача інформації про платника

Деякі платіжні шлюзи можуть вимагати передачу додаткової інформації про платника. Цю інформацію можна також додати в запит на ініціалізацію платіжного віджета.

Приклад ініціалізації платіжного віджета з інформацією про продукти, даними платника та усіма івентами:

<script>
const widget = PaymentWidget.init({
apiKey: 'YOUR_API_KEY',
mode: 'embedded',
selector: '#widget',
payment: {
type: 'hold',
orderId: '1002289582',
description: 'Payment #1002289582',
amount: 399.98,
currency: 'UAH',
serverUrl: 'https://myshop.ua/payment/notify',
products: [
{
name: "Xiaomi fan",
price: 199.99,
quantity: 2
}
],
payer: {
id: '10000123',
firstName: 'John',
middleName: '',
lastName: 'Doe',
phone: '+123456789',
email: '[email protected]',
birthDate: '1990-01-01',
billingAddress: {
line1: '',
line2: '',
city: 'LA',
country: 'US',
state: 'CA',
postalCode: '90001'
}
}
}
});
widget
.on('widget.ready', function(data){})
.on('widget.error', function(data){})
.on('payment.success', function(data){})
.on('payment.failed', function(data){});
</script>

Закриття платіжного віджета

За необхідності платіжний віджет може бути закритий у звʼязку з настанням певної події, про яку отримано зворотний виклик, або за вашою ініціативою.

Приклади використання (отримання зворотного виклику про неуспішну транзакцію ініціює закриття віджета):

</script>
const widget = PaymentWidget.init({
apiKey: 'YOUR_API_KEY',
mode: 'popup',
payment: {
type: 'hold',
amount: 1.99,
currency: 'UAH'
}
})
widget.on('payment.failed', function(data){
// failed
widget.close()
});
</script>

Підтримувані мови

Платіжний віджет може бути відображений різними мовами з можливістю задати власне значення будь-якому параметру, що відображається платнику.

Управління мовами платіжного віджета здійснюється через параметр locale.

Підтримувані локалі:

Parameter valueLanguage
enEnglish
ukUkrainian
ruRussian

Якщо в запиті на ініціалізацію платіжного віджета жодне зі значень не передане, то за замовчуванням використовується значення мови браузера платника, що передається у фінгерпринті. Для мов браузера uk або ru - віджет відображається українською. Для всіх інших мов - англійською.

Приклад запиту:

PaymentWidget.init({
apiKey: "test_E3PALDNAQ11OV9D0141MKB3I9RJRJDR2MJPP",
mode: "embedded",
selector: '#widget',
locale: 'en',
payment: {
type: "pay",
amount: 2.99,
currency: "UAH",
}
})

Для встановлення власних значень параметрам платіжного віджета слід використовувати блок localization.

Приклад запиту:

PaymentWidget.init({
apiKey: "test_E3PALDNAQ11OV9D0141MKB3I9RJRJDR2MJPP",
mode: "embedded",
selector: '#widget',
locale: 'en',
localization: {
"en": {
"submit": "Donate",
},
"fr": {
...
},
},
payment: {
type: "pay",
amount: 2.99,
currency: "UAH",
}
})

Перелік UI-компонентів платіжного віджета, яким можна задати власне значення:

ParameterDescriptionDefault value ENDefault value UKDefault value RU
chooseAnotherSection to pay using a cardor enter card detailsабо введіть дані карткиили введите данные карты
orderNumOrder numberOrder No.ЗамовленняНомер заказа
optionalOptional field indicatorOptionalОпціональноопционально
cardNumberInput field for the card numberCard numberНомер картиНомер карты
cardExpDateInput field for the card expiration dateCard expiryТермін дії карткиСрок действия
cvvInput field for card verification value/codeCVV2/СVC2CVV2/СVC2CVV2/СVC2
submitPayment button for the card optionPayСплатитиОплатить
errorCardNumberFieldError message for the card number fieldCard number is not validНомер картки недійснийНомер карты недействителен
errorExpDateFieldError message for the card expiration date fieldExpiration date is not validДата закінчення терміну дії картки недійснаДата истечения срока карты недействительна
errorCvvFieldError message for the card verification value/code fieldCVV is not validCVV недійснийCVV недействителен
errorRequiredFieldError message for a mandatory fieldRequired fieldОбов'язкове полеОбязательное поле
successPaymentNotification of successful paymentYour payment is successful!Ваш платіж успішний!Ваш платеж успешный!
failedPaymentNotification of failed paymentYour payment is unsuccessful!Ваш платіж неуспішний!Платёж не отправлен
paymentIsNotCompletedNotification when payment is in processProcessing paymentОпрацьовуємо платіжОбрабатываем платёж
pendingExpiredNotification for transactions lacking a confirmed final statusIf funds have already been withdrawn from your card, please wait up to 5 minutes for payment confirmation.Якщо кошти вже були списані з картки, будь ласка, зачекайте до 5 хвилин для отримання фінального статусу платежу.Если средства уже были списаны с карты, пожалуйста, подождите до 5 минут, чтобы получить окончательный статус платежа.
waitButton to request the current status of transactionsWaitЗачекатиПодождать
redirectRequiredTitleNotification in the embedded payment widget advising customers to undergo 3DS verificationClick to Open 3DS Verification WindowНатисніть, щоб відкрити вікно підтвердження 3DSНажмите, чтобы открыть окно подтверждения 3DS
redirectRequiredButtonButton in the embedded payment widget to initiate 3DS verificationProceed with 3DS VerificationПродовжити з перевіркою 3DSПродолжить с проверкой 3DS