Node
Якщо ви використовуєте Npm у вашому проекті, ви можете додати ipsp-js-sdk залежністю від package.json з наступною командою:
npm i --save ipsp-js-sdk
або додати залежність вручну:
{
"dependency": {
"ipsp-js-sdk":"^1.0"
}
}Bower
Якщо ви використовуєте Bower у вашому проекті, ви можете виконати наступну команду:
bower install ipsp-js-sdk
Вручну
Якщо ви не використовуєте NodeJS, ви можете завантажити the останню версію. Або клонуйте з GitHub останню версію для розробників
git clone git@github.com:cloudipsp/ipsp-js-sdk.gitQuick start
<script src="https://unpkg.com/ipsp-js-sdk@latest/dist/checkout.min.js"></script>
Детальна інструкція по встановленню: https://github.com/cloudipsp/ipsp-js-sdk.
Базовий шаблон
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> </head> <body> <script src="https://unpkg.com/ipsp-js-sdk@latest/dist/checkout.min.js"></script> <script> $checkout('Api').scope(function(){ this.request('api.checkout.form','request', { Parameters } ).done(function(model){ model.sendResponse(); console.log(model.attr('order')); }).fail(function(model){ console.log(model.attr('error')); }); }); </script> </body> </html>
Приклад базового шаблону: https://github.com/cloudipsp/ipsp-js-sdk#basic-template
Додайте параметри required_rectoken=Y і server_callback_url у вашо запит на отримання повторюваного токена у зворотному виклику сервера (параметр rectoken).
Endpoint: https://pay.fondy.eu/api/checkout/token/
curl -i -X POST \
-H "Content-Type:application/json" \
-d \
'{
"request": {
"server_callback_url": "http://myshop/callback/",
"order_id": "TestOrder_SDK1",
"currency": "USD",
"merchant_id": 1396424,
"order_desc": "Test payment",
"amount": 1000,
"required_rectoken": "Y",
"signature": "91ea7da493a8367410fe3d7f877fb5e0ed666490"
}
}' \
'https://pay.fondy.eu/api/checkout/token'Normal response:
{
"response":{
"response_status":"success",
"token":"afcb21aef707b1fea2565b66bac7dc41d7833390"
}
}Відповідь у випадку помилки
{
"response":{
"response_status":"failure",
"error_message":"Parameter `amount` is mandatory",
"error_code":"1008"
}
}Документація: /docs/page/3/?la=en#chapter-3-6-c.
Збережіть міжхостовий параметр token з відповіді.
token з кроку 3 у форму даних вашої картки..Надішліть параметри

Параметри:
{
"payment_system":"card",
"token":"host-to-host generated token",
"card_number":"16/19-digits number",
"expiry_date":"Supported formats: MM/YY, MM/YYYY, MMYY, MMYYYY",
"cvv2":"3-digits number"
}від форми картки до платіжного шлюзу за допомогою JavaScript API $checkout('Api').
Instruction: https://github.com/cloudipsp/ipsp-js-sdk#host-to-host-token
.on('success') and .on('error') JavaScript-відповіді для отримання результату обробки платежу.success – замовлення схвалено і сума буде списана
error – замовлення відхилено і сума не буде списана
model.attr('error.message') міститиме локалізоване повідомлення про помилку у разі відхилення платежу. Інформація про статус замовлення та деталі замовлення будуть повернуті в model.data.order.order_data
JavaScript callback example:
console.log('success',JSON.stringify(model.attr("order").order_data));{
"rrn": "",
"masked_card": "444455XXXXXX1111",
"sender_cell_phone": "",
"response_signature_string": "**********|10000|USD|10000|123456|444455|VISA|USD|06|444455XXXXXX1111|[]|1396424|Order_1396424_ZtP6E6IQMC_1520944420|approved|13.03.2018 14:33:40|85233820|card|success|0|client@example.com|0|purchase",
"response_status": "success",
"sender_account": "",
"fee": "",
"rectoken_lifetime": "",
"reversal_amount": "0",
"settlement_amount": "0",
"actual_amount": "10000",
"order_status": "approved",
"response_description": "",
"verification_status": "",
"order_time": "13.03.2018 14:33:40",
"actual_currency": "USD",
"order_id": "Order_1396424_ZtP6E6IQMC_1520944420",
"parent_order_id": "",
"merchant_data": "[]",
"tran_type": "purchase",
"eci": "06",
"settlement_date": "",
"payment_system": "card",
"rectoken": "",
"approval_code": "123456",
"merchant_id": 1396424,
"settlement_currency": "",
"payment_id": 85233820,
"product_id": "",
"currency": "USD",
"card_bin": 444455,
"response_code": "",
"card_type": "VISA",
"amount": "10000",
"sender_email": "client@example.com",
"signature": "b39ac49a1bdf4bbd7fc09e990fbba63197be67d0"
}
Приклад: https://jsfiddle.net/5v7jbwa2/
server_callback_url.Формат фінальної відповіді: /docs/page/3/?la=en#chapter-3-2
Приклад відповіді:
success {
"rrn": "",
"masked_card": "444455XXXXXX1111",
"sender_cell_phone": "",
"response_signature_string": "**********|10000|USD|10000|123456|444455|VISA|USD|06|444455XXXXXX1111|[]|1396424|Order_1396424_ZtP6E6IQMC_1520944420|approved|13.03.2018 14:33:40|85233820|card|success|0|client@example.com|0|purchase",
"response_status": "success",
"sender_account": "",
"fee": "",
"rectoken_lifetime": "",
"reversal_amount": "0",
"settlement_amount": "0",
"actual_amount": "10000",
"order_status": "approved",
"response_description": "",
"verification_status": "",
"order_time": "13.03.2018 14:33:40",
"actual_currency": "USD",
"order_id": "Order_1396424_ZtP6E6IQMC_1520944420",
"parent_order_id": "",
"merchant_data": "[]",
"tran_type": "purchase",
"eci": "06",
"settlement_date": "",
"payment_system": "card",
"rectoken": "",
"approval_code": "123456",
"merchant_id": 1396424,
"settlement_currency": "",
"payment_id": 85233820,
"product_id": "",
"currency": "USD",
"card_bin": 444455,
"response_code": "",
"card_type": "VISA",
"amount": "10000",
"sender_email": "client@example.com",
"signature": "b39ac49a1bdf4bbd7fc09e990fbba63197be67d0"
}
Збережіть повторюваний токен з параметру rectoken та замаскований номер картки у форматі 4444 55XX XXXX 1111 з masked_card в callback
Надішліть rectoken до endpoint https://pay.fondy.eu/api/recurring для здійснення періодичної оплати.
Документація: /docs/page/10/
Виконайте кроки 1-3 з інструкції “Перший платіж”. Оптимізуйте дизайн форми картки для відображення замаскованої картки та запиту cvv2 у клієнта
Завантажте host-to-host token з кроку 3 та rectoken з остаточної відповіді в реквізитах вашої картки з.
У разі оплати в один клік rectoken буде використовуватися замість card_number і expiry_date
Надішліть параметри
{
"payment_system":"card",
"token":"host-to-host generated token",
"rectoken":"rectoken from final response",
"cvv2":"3-digits number"
}Процес з кроком 5-6 для оплати в один клік, щоб отримати результат оплати у зворотному дзвінку