Протокол взаимодействия Host2Host
Взаимодействие по прооколу Host2Host позволяет производить процесс сбора карточных данных на стороне ресурса, в случае наличия сертификата PCI DSS. Взаимодействие между ресурсом с сервисом Qostiq осуществляется с помощью запросов по API.
- Для создания платежа методом Host2Host необходимо отправить запрос ** Invoice create**. В ответе на запрос о создании счета возвращается ID
session_id, который необходимо использовать для передачи карточных данных. - Отправить запрос H2H Data для получения токена. В ответе на запрос возвращается токен
form_tokenи URLpayform_url, которые необходимо использовать для передачи карточных данных. - После ответа на запрос H2H Data, необходимо сформировать и подтвердить HTML форму Pay Form на
payform_urlметодом POST с данными карты плательщика
###Запрос H2H Data [/h2hdata]
Test URL: https://test-core.tech-icard.com/h2h_data
Production URL: https://core.tech-icard.com/h2h_data
Метод: POST
Обязательные параметры: session_id
- С помощью запроса **H2H Data** необходимо передать
session_id. В ответе вернется токенform_tokenи URLpayform_url, которые необходимо использовать для передачи карточных данных.
Пример Запроса:
{
"session_id": "26d90ef012e34b44aa9d74a3556e15a6"
}
Где:
| Параметр | Описание | Формат |
|---|---|---|
session_id | ID полученный в ответе на запрос ** Invoice create** | string |
Пример ответа:
{
"data": {
"form_token": "uerhdw47d748yd784dy83uhueh834h84dh84hd8dh8",
"payform_url": "https://card.qostiq.com/payform/"
},
"error_code": 0,
"message": "success",
"result": true
}
Где:
| Параметр | Описание | Формат |
|---|---|---|
form_token | Токен для передачи карточных данных | string |
payform_url | URL для редиректа пользователя с карточными данными | string |
Запрос H2H Data [POST]
-
Request (application/json)
```json
{
"session_id":"26d90ef012e34b44aa9d74a3556e15a6"
}
``` -
Response 200 ()
```json
{
"data":
{
"form_token":"uerhdw47d748yd784dy83uhueh834h84dh84hd8dh8",
"payform_url":"https://card.qostiq.com/payform",
},
"error_code": 0,
"message": "Ok",
"result": true
}
```
Формирование HTML формы Payform [/Payform]
Метод: POST
**Обязательные параметры: ** session_id,card_number,card_holder,expiry_month,expiry_year,cvv,payform_url,form_token.
Параметр session_id берется из ответа запроса ** Invoice create** .
- После подтверждения HTML формы пользователь будет перенаправлен на страницу 3ds верификации.
- После прохождения 3ds пользователь будет возвращен на соответствующие success или failed URL, которые передаются в запросе ** Invoice create** .
- Параллельно, вам будет отправлен callback. Если платеж неуспешен, то в callback вернется причина отказа, в случае ели она была передана шлюзом.
Пример Формы:
{
"action": "https://card.tech-icard.com/en/payform",
"method": "POST",
"fields": {
"session_id": "26d90ef012e34b44aa9d74a3556e15a6",
"form_token": "uerhdw47d748yd784dy83uhueh834h84dh84hd8dh8",
"card_number": "4111111111111111",
"card_holder": "TEST TEST",
"expiry_month": "12",
"expiry_year": "22",
"cvv": "123"
},
"submit": true
}
| Параметр | Описание | Формат |
|---|---|---|
expiry_year | год окончания действия карты | 22 |
card_holder | TEST TEST | https://qostiq.com/failed/ |
card_number | номер карты пользователяа | 4111111111111111 |
expiry_month | месяц окончания действия срока карты | 12 |
cvv | трёхзначный код проверки подлинности карты | 123 |
session_id | уникальный идентификатор операции оплаты | 26d90ef012e34b44aa9d74a3556e15a6 |
form_token | токен для передачи карточных даннх | 0e61dd5935054d7e99d3da0cef411758 |
action | URL для редиректа пользователя с карточными данными | https://card.tech-icard.com/en/payform |
Отправить запрос PayForm [POST]
-
Request
```json
{'expiry_year': '**', 'cvv': '***', 'expiry_month': '**', 'card_number': '****************', 'card_holder': '************', 'sign': 'bcc0f7c61d0ef0f7063b1aef59989a0b7c0ac3daa8f5ae3fca85c28c436fb28a', 'session_id': '033695c6ba634e0c94533085c5c372ca'}",
``` -
Response 200 ()
```json
{
https://tech-icard.com/
}
```
Рекурренты
Рекуррентные платежи дают возможность выполнять регулярные списания денег с банковской карты покупателя без повторного ввода реквизитов карты и без участия плательщика для инициации очередного платежа.
ВАЖНО: Данный функционал доступен только в случае согласования с менеджером.
Иницииация первого платежа с признаком рекуррентности происходит по платежному направлению "payway": "card_uah" в несколько этапов:
- Для создания 1-го в цепочке платежа, в запросе Invoice/Create необходимо передать дополнительный параметр
“required_pay_token:”“true”. На запрос поступит Callback с дополнительным параметром“pay_token”в поле“ps_data”.
ВАЖНО: Параметр pay_token будет передаваться только в случае успешно проведенной транзакции.
- Для иницииации последующих списаний с карты в запросе Invoice/Create необходимо передать ранее полученный
pay_token.
ВАЖНО: В ответе на запрос вернется method: offline и url: offline - Это означает, что плательщика не нужно переадресовывать на страницу платежной системы.
При этом запрос Invoice/Pay уже не запускается.
- Результат платежа приходит в Callback.
Пример Запроса:
Test URL: https://core.test-qostiq.com/invoice/create
Production URL: https://core.qostiq.com/invoice/create
Метод: POST
Обязательные параметры: amount, currency, payway, shop_id, shop_order_id, “required_pay_token”: “true”, sign.
{
"amount": "1",
"currency": "980",
"description": "Test invoice",
"payway": "card_uah",
"pay_token": "9af6e26f3b4b44e28c26c2bd994987c4",
"shop_id": "158",
"shop_order_id": "49135760",
"sign": "f63b494eb33e5d3549385d0ba2cb68b139e4a1b4483fd707aaac2095ab01bf42"
}
Пример Успешного ответа:
{
"data": {
"data": {
"en": "No manual. Please, pay invoice",
"ru": "Инструкция отсутствует. Пожалуйста, оплатите выставленный счет",
"uk": "нструкція відсутня. Будь ласка, оплатіть рахунок"
},
"id": "OFFLINE",
"method": "OFFLINE",
"url": "OFFLINE"
},
"error_code": 0,
"message": "Ok",
"result": true,
"shop_id": 158,
"transfer_id": null,
"withdraw_id": null
}
Пример Неуспешного ответа:
{
"data": null,
"error_code": 1,
"message": "IncorrectRequestParam",
"result": false
}