Перейти к основному содержимому

Платежи банковской картой

Этот способ подходит, если вы храните данные банковских карт на своей стороне и соблюдаете соответствующие требования стандарта PCI DSS. Вы можете принимать платежи банковскими картами Visa и MasterCard.

Способ не учитывает шаг с холдированием платежа. Как провести платеж с холдированием.

Как провести платеж картой

1. Создайте платежную сессию

Отправьте запрос на создание сессии transaction/initiate. В ответе придет идентификатор платежной сессии.

Пример
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/transaction/initiate \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"user_info": {
"user_id": "user123",
"contact_info": [{
"email_address": "user@gmail.com"
}]
},
"sum_info": {
"sum": 10000,
"currency_code": "rub"
},
"extra_info": "order123"
}'

2. Начните платеж

Отправьте запрос на проведение платежа transaction/start/checkout.

  • В параметре session_id передайте идентификатор платежной сессии, созданной на первом шаге.
  • В поле type объекта payment_info передайте значение card_info.
  • В объекте card_details передайте данные банковской карты пользователя.
Пример
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/transaction/start/checkout \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_3230",
"payment_info": {
"type": "card_info",
"card_info": {
"type": "card_details",
"card_details": {
"card_number": "4242424242424242",
"card_exp_month": "01",
"card_exp_year": "26",
"card_code": "123"
}
}
},
"user_info": {
"user_id": "user123",
"contact_info": [{
"email_address": "user@gmail.com"
}]
},
"extra_info": "good"
}'

3. Дождитесь вебхука для платежа

Zetplat отправит вам вебхук approve_pending и будет ждать подтверждения или отмены.

Пример
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "approve_pending",
"session_info": {
"id": "ps_3230",
"transaction_status": "ongoing",
"created_date": "2018-05-27T02:03:00.000000Z",
"updated_at": "2018-05-27T02:03:00.000000Z",
"payments": [{
"id": "pm_2018",
"transaction_status": "pending",
"created_date": "2018-05-27T02:03:00.000000Z",
"user_info": {
"user_id": "user123",
"contact_info": [{
"email_address": "user@gmail.com"
}]
},
"payment_info": {
"type": "card",
"card_info": {
"card_last4": "4242",
"card_network": "visa"
}
},
"sum_info": {
"sum": 10000,
"currency_code": "rub"
},
"extra_info": "good"
}]
}
}'

4. Подтвердите или отмените платеж

Проверьте данные для платежа, а затем подтвердите или отмените его:

Пример
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/transaction/approve \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_3230"
}'

5. Выполните дополнительные действия

Если вы получите вебхук action_pending от Zetplat, это значит, что для проведения платежа нужны дополнительные действия. Например, пользователю нужно пройти 3D Secure. В этом случае перенаправьте пользователя на адрес для 3D Secure.

Пример
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "action_pending",
"session_info": {
"id": "ps_3230",
"transaction_status": "ongoing",
"created_date": "2018-05-27T02:03:00.000000Z",
"updated_at": "2018-05-27T02:03:00.000000Z",
"payments": [{
"id": "pm_131",
"transaction_status": "pending",
"created_date": "2018-05-27T02:03:00.000000Z",
"user_info": {
"user_id": "user123",
"contact_info": [{
"email_address": "user@gmail.com"
}]
},
"payment_info": {
"type": "card_info",
"card_info": {
"card_network": "visa",
"card_last4": "8801"
}
},
"sum_info": {
"sum": 15000,
"currency_code": "rub"
},
"user_action": {
"type": "redirect",
"destination_info": {
"url_address": "https://zetplat.com?foo=bar",
"domain": "https://zetplat.com",
"http_method": "POST",
"additional_params": {
"foo": "bar"
},
"extra_params": {
"paReq": "sdfew^//asdhbv",
"MD": "abc75daefnn"
}
}
}
}]
}
}'

6. Дождитесь результата платежа

Zetplat отправит вам вебхук checkout_results. Статус successful означает успешный платеж.

Подробнее о статусах платежа
Описание кодов ошибок и их значений

Схема платежа картой

Схема платежа картой