Выплата по токену
Общая информация
В данном разделе описана выплата через Gate по токену платежной карты.
Токен — это идентификатор, представляющий собой уникальную строку из 64 символов и связанный с определенной банковской картой и пользователем. Токен не содержит конфиденциальной информации и может храниться в вашей системе, не создавая угрозы нарушения стандартов безопасности по хранению данных банковских карт. Более подробную информацию о токенах см. в разделе Использование токенов.
Шаги проведения выплаты
Чтобы выполнить выплату через Gate по токену:
- Отправьте запрос с нужными параметрами и подписью на рабочий URL-адрес платежной платформы Rocketpay.
- При необходимости предоставьте дополнительную информацию о платеже.
Подробнее о предоставлении дополнительной информации, см. Дополнение информации о платеже.
- Примите от платежной платформы оповещение (callback) о результате проведения выплаты.
Далее в данном разделе представлена схема проведения выплаты в базовом случае, то есть без дополнения информации о платеже.
Рис.: Здесь описаны шаги выплаты через Gate
- Пользователь инициирует выплату в вашей системе.
- Ваша система передает платежной платформе запрос на выплату через Gate.
- Платежная платформа получает запрос.
- Платежная платформа проверяет наличие обязательных параметров и корректной подписи в запросе.
- Платежная платформа отправляет вашей системе ответ с информацией о получении запроса и о результате проверки его корректности. (Подробнее о структуре ответа см. Ответ.)
- Платежная платформа обрабатывает запрос и отправляет его в сервис провайдера.
- Сервис провайдера обрабатывает запрос на выплату.
- Сервис провайдера направляет в платежную платформу уведомление о результате выплаты.
- Платежная платформа отправляет в вашу систему оповещение (callback) с результатом выплаты.
- Ваша система направляет пользователю информацию о результате выплаты.
Далее рассказывается о структуре запроса на выплату по токену карты, а также о структуре оповещений с результатами выплаты.
Запрос
Далее представлена информация, необходимая для составления и отправки запроса на выплату.
HTTP-метод запроса | POST |
Формат тела запроса | JSON |
Конечная точка | /v2/payment/card/payout/token |
Полная спецификация конечной точки | /v2/payment/card/payout/token |
|
|||
---|---|---|---|
Объект/массив | Параметр | Описание | |
general |
project_id |
Идентификатор проекта, полученный от Rocketpay при интеграции. Пример: |
|
payment_id |
Идентификатор платежа, уникальный в рамках проекта. Пример: |
||
signature |
Подпись запроса, составленная после определения всех параметров запроса. Подробнее о составлении подписи см. Использование подписи к данным. | ||
customer |
id |
Идентификатор пользователя, уникальный в рамках проекта. Пример: |
|
first_name |
Имя пользователя. Пример: |
||
middle_name |
Отчество или среднее имя пользователя. Пример: |
||
last_name |
Фамилия пользователя. Пример: |
||
ip_address |
IP-адрес устройства пользователя. Пример: |
||
payment |
amount |
Сумма выплаты в дробных единицах валюты без десятичной точки и пробелов за исключением случаев, когда у валюты нет дробной части. Если у валюты нет дробных единиц (то есть количество разрядов дробных единиц равно нулю), то в этом параметре нужно указывать сумму в основных единицах валюты. Подробнее о разрядах дробных единиц у валют см. Коды валют. Пример: 100,00 USD передается как |
|
currency |
Код валюты выплаты в формате ISO-4217 alpha-3. Пример: |
||
token |
Токен банковской карты пользователя. Токен представляет собой уникальную строку из 64 символов, связанную с банковской картой. Пример: Подробнее см. Использование токенов |
||
card |
card_holder |
Имя держателя карты (в соответствии с указанным на карте). Этот параметр обязателен, если выплата выполняется по токену, при создании которого имя держателя карты не использовалось. Пример: |
|
При необходимости добавьте в запрос необязательные параметры, указанные в спецификации Gate: API Reference. |
Рис.: Пример тела запроса на выплату по токену
{ "general": { "project_id": 123, "payment_id": "payment_47", "signature": "1wR1YgDoDlJppOdLzFOFK...Y4YonbWmspbFh7x1o1ut5PxxTIJfQ==" }, "customer": { "id": "customer_123", "ip_address": "198.51.100.47" }, "payment": { "amount": 10000, "currency": "USD" }, "token": "pkmawa3khb7wninntq8g8q3592fjjxwvzfebwbegqkl1c16akpgo6sgxac6wulz7" }
Оповещение (callback)
Уведомление о проведении выплаты платежная платформа возвращает в оповещении. Подробнее о структуре оповещений см. Оповещения (callbacks) в Gate.
Вот пример тела оповещения с информацией о том, что в рамках проекта 123
проведена выплата в размере 100,00 USD
на карту 553691******0802
пользователя customer_123
.
Рис.: Пример тела оповещения о результате выплаты
{ "project_id": 123, "payment": { "id": "payment_47", "type": "payout", "status": "success", "date": "2019-06-24T11:08:49+0000", "method": "card", "sum": { "amount": 10000, "currency": "USD" }, "description": "payout" }, "account": { "number": "553691******0802" }, "customer": { "id": "customer_123" }, "operation": { "id": 14, "type": "payout", "status": "success", "date": "2019-06-24T11:08:49+0000", "created_date": "2019-06-24T11:07:42+0000", "request_id": "71228f54d21e776a481", "sum_initial": { "amount": 10000, "currency": "USD" }, "sum_converted": { "amount": 10000, "currency": "USD" }, "provider": { "id": 1496, "payment_id": "60-1c6072de6000", "date": "2019-06-24T11:08:47+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "+GTEzb3Xw4A9Ap8q/LE8TyyJM+MEXXja28RXtr8v2EITaK4UzSg...==" }
Далее представлен пример данных из оповещения с информацией об отказе в проведении выплаты. Платеж отклонен из-за превышения максимально разрешенного размера выплаты.
Рис.: Пример тела оповещения об отказе в проведении выплаты
{ "project_id": 123, "payment": { "id": "payment_47", "type": "payout", "status": "decline", "date": "2019-06-24T11:08:49+0000", "method": "card", "sum": { "amount": 10000, "currency": "USD" }, "description": "payout" }, "account": { "number": "553691******0802" }, "customer": { "id": "customer_123" }, "operation": { "id": 14, "type": "payout", "status": "decline", "date": "2019-06-24T11:08:49+0000", "created_date": "2019-06-24T11:07:42+0000", "request_id": "71228f54d21e776a481", "sum_initial": { "amount": 10000, "currency": "USD" }, "sum_converted": { "amount": 10000, "currency": "USD" }, "provider": { "id": 1496, "payment_id": "60-1c6072de6000", "date": "2019-06-24T11:08:47+0000", "auth_code": "" }, "code": "3104", "message": "Payment Constraint Invalid Payout Amount" }, "signature": "+GTEzb3Xw4A9Ap8q/LE8TyyJM+MEXXja28RXtr8v2EITaK4UzSg...==" }