Сохранение способа оплаты для автоплатежей
С помощью виджета ЮKassa вы можете сохранять способ оплаты, чтобы использовать его для автоплатежей. Например, для ежемесячной оплаты подписки.
По умолчанию автоплатежи работают только в тестовом магазине. Если хотите использовать их в вашем реальном магазине, напишите менеджеру ЮKassa.
Если вам разрешено использование автоплатежей, вы можете проводить платежи:
Платеж с сохранением способа оплаты
Сохранение способа оплаты позволяет привязать карту, кошелек ЮMoney, Mir Pay, SberPay, T-Pay или СБП к вашему магазину.
Если вы используете СБП, ознакомьтесь с особенностями проведения платежей при оплате через СБП.
С помощью виджета вы можете проводить платежи с безусловным или с условным сохранением способа.
Безусловное сохранение способа оплаты — сохранение способа происходит по умолчанию, пользователь не может на это повлиять. Как это выглядит:
- Вы на сайте предупреждаете пользователя, что сохраните его платежные данные, и рассказываете, как будете их использовать, например с какой регулярностью вы будете списывать деньги и на какую сумму, как пользователь может отказаться от повторных списаний в вашем магазине. Вы на своей стороне получаете от пользователя согласие на проведение автоплатежей.
- Виджет отображает пользователю способы оплаты, поддерживающие безусловное сохранение, и предупреждает, что после платежа способ оплаты будет привязан к вашему магазину. При успешной оплате данные способа оплаты автоматически сохранятся в ЮKassa.
Способы оплаты, которые поддерживают безусловное сохранение: кошелек ЮMoney, банковская карта, Mir Pay, SberPay, T-Pay, СБП.
Пример использования: подписка на регулярные платежи.
Платеж с безусловным сохранением способа оплаты
Условное сохранение способа оплаты — сохранение способа происходит по желанию пользователя. Как это выглядит:
- Вы на сайте рассказываете о возможности сохранить платежные данные, о том, как вы будете их использовать и как потом от этого отказаться.
- Виджет отображает пользователю все доступные способы оплаты. Если пользователь выберет способ оплаты, поддерживающий условное сохранение, виджет предложит ему сохранить данные для вашего магазина. Если пользователь согласится, при успешной оплате данные способа будут сохранены в ЮKassa, и вы сможете использовать идентификатор сохраненного способа оплаты для последующих платежей. Если не согласится, платеж пройдет без привязки данных к магазину.
Способы оплаты, которые поддерживают условное сохранение: кошелек ЮMoney, банковская карта.
Пример использования: привязка платежного средства к магазину для ускорения процесса оплаты при последующих платежах с самостоятельной реализацией экрана выбора способа оплаты.
Если вы хотите пользоваться готовым экраном выбора способа оплаты и сохранять только банковские карты пользователя, используйте запоминание банковских карт пользователя.
Платеж с условным сохранением способа оплаты
Платеж с безусловным сохранением способа оплаты
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "amount": { "value": "2.00", "currency": "RUB" }, "confirmation": { "type": "embedded" }, "capture": true, "save_payment_method": true, "description": "Заказ №72" }'
Развернуть
Шаг 2. В ответе от ЮKassa получите
confirmation_token
— токен для инициализации виджета.JSON
{ "id": "25564507-000f-5000-9000-19878c91d156", "status": "pending", "paid": false, "amount": { "value": "2.00", "currency": "RUB" }, "confirmation": { "type": "embedded", "confirmation_token": "ct-25564507-000f-5000-9000-19878c91d156" }, "created_at": "2019-11-07T14:59:19.351Z", "description": "Заказ №72", "metadata": {}, "recipient": { "account_id": "100500", "gateway_id": "100700" }, "refundable": false, "test": false }
Развернуть
Шаг 4. Далее проводите платеж как обычно.
Если оплата прошла успешно, получите идентификатор сохраненного способа оплаты.
Платеж с условным сохранением способа оплаты
Шаг 1. Создайте платеж, передавать
save_payment_method
не нужно.cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "amount": { "value": "2.00", "currency": "RUB" }, "confirmation": { "type": "embedded" }, "capture": true, "description": "Заказ №72" }'
Шаг 2. В ответе от ЮKassa получите
confirmation_token
— токен для инициализации виджета.JSON
{ "id": "25564507-000f-5000-9000-19878c91d156", "status": "pending", "paid": false, "amount": { "value": "2.00", "currency": "RUB" }, "confirmation": { "type": "embedded", "confirmation_token": "ct-2557c659-000f-5000-9000-12714806d854" }, "created_at": "2019-11-07T14:59:19.351Z", "description": "Заказ №72", "metadata": {}, "recipient": { "account_id": "100500", "gateway_id": "100700" }, "refundable": false, "test": false }
Развернуть
Шаг 4. Далее проводите платеж как обычно.
Если оплата прошла успешно, получите идентификатор сохраненного способа оплаты.
Получение идентификатора сохраненного способа оплаты
Шаг 1. Дождитесь, когда пользователь подтвердит оплату, и платеж перейдет в статус
succeeded
(или waiting_for_capture
, если это платеж в две стадии). Чтобы узнать статус платежа, подождите, когда придет уведомление от ЮKassa, или периодически отправляйте запросы, чтобы получить информацию о платеже .Шаг 2. Убедитесь, что способ оплаты сохранен: в объекте платежа значение
payment_method.saved
изменилось на true
.JSON
{ "id": "25564507-000f-5000-9000-19878c91d156", "status": "succeeded", "paid": true, "amount": { "value": "2.00", "currency": "RUB" }, "authorization_details": { "rrn": "603668680243", "auth_code": "000000", "three_d_secure": { "applied": true } }, "captured_at": "2018-07-18T17:20:50.825Z", "created_at": "2018-07-18T17:18:39.345Z", "description": "Заказ №72", "metadata": {}, "payment_method": { "type": "bank_card", "id": "25564507-000f-5000-9000-19878c91d156", "saved": true, "card": { "first6": "555555", "last4": "4444", "expiry_month": "07", "expiry_year": "2022", "card_type": "Mir", "card_product": { "code": "MCP", "name": "MIR Privilege" }, "issuer_country": "RU", "issuer_name": "Sberbank" }, "title": "Bank card *4444" }, "refundable": true, "refunded_amount": { "value": "0.00", "currency": "RUB" }, "recipient": { "account_id": "100500", "gateway_id": "100700" }, "test": false }
Развернуть
Шаг 3. Сохраните идентификатор способа оплаты
payment_method.id
. Его нужно будет использовать в качестве идентификатора сохраненного способа оплаты при последующих платежах.Готово!
Теперь вы можете проводить автоплатежи. Проведение платежа сохраненным способом оплаты нужно реализовать самостоятельно.
Платеж без сохранения способа оплаты
Вы можете проводить платежи без сохранения способа оплаты. Пользователь сможет оплатить любым доступным способом. Способ оплаты не сохранится.
Чтобы провести платеж без сохранения способа оплаты:
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "amount": { "value": "2.00", "currency": "RUB" }, "confirmation": { "type": "embedded" }, "capture": true, "save_payment_method": false, "description": "Заказ №72" }'
Развернуть
Шаг 2. В ответе от ЮKassa получите
confirmation_token
— токен для инициализации виджета.JSON
{ "id": "25564507-000f-5000-9000-19878c91d156", "status": "pending", "paid": false, "amount": { "value": "2.00", "currency": "RUB" }, "confirmation": { "type": "embedded", "confirmation_token": "ct-25564507-000f-5000-9000-19878c91d156" }, "created_at": "2019-11-07T14:59:19.351Z", "description": "Заказ №72", "metadata": {}, "recipient": { "account_id": "100500", "gateway_id": "100700" }, "refundable": false, "test": false }
Развернуть
Шаг 4. Далее проводите платеж как обычно.
Статья была полезна?
Да
Нет
Что почитать еще