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.git
Quick 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 для оплати в один клік, щоб отримати результат оплати у зворотному дзвінку