Платежи банковской картой
Этот способ подходит, если вы храните данные банковских карт на своей стороне и соблюдаете соответствующие требования стандарта 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. Подтвердите или отмените платеж
Проверьте данные для платежа, а затем подтвердите или отмените его:
- Подтвердить — с помощью запроса
transaction/approve. - Отменить — с помощью запроса
transaction/cancel.
Пример
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 означает успешный платеж.
Подробнее о статусах платежа
Описание кодов ошибок и их значений
Схема платежа картой
