С помощью виджета ЮKassa вы можете сохранять способ оплаты, чтобы использовать его для автоплатежей, например для ежемесячной оплаты подписки.
Если вам разрешено использование автоплатежей, вы можете проводить платежи:
Сохранение способа оплаты позволяет привязать карту, кошелек ЮMoney, Mir Pay, SberPay или СБП к вашему магазину.
С помощью виджета вы можете проводить платежи с безусловным или с условным сохранением способа.
Безусловное сохранение способа оплаты — сохранение способа происходит по умолчанию, пользователь не может на это повлиять. Как это выглядит:
- Вы на сайте предупреждаете пользователя, что сохраните его платежные данные, и рассказываете, как будете их использовать, например с какой регулярностью вы будете списывать деньги и на какую сумму, как пользователь может отказаться от повторных списаний в вашем магазине. Вы на своей стороне получаете от пользователя согласие на проведение автоплатежей.
- Виджет отображает пользователю способы оплаты, поддерживающие безусловное сохранение, и предупреждает, что после платежа способ оплаты будет привязан к вашему магазину. При успешной оплате данные способа оплаты автоматически сохранятся в ЮKassa.
Способы оплаты, которые поддерживают безусловное сохранение: кошелек ЮMoney, банковская карта, Mir Pay, SberPay, СБП.
Пример использования: подписка на регулярные платежи.
Платеж с безусловным сохранением способа оплаты
Условное сохранение способа оплаты — сохранение способа происходит по желанию пользователя. Как это выглядит:
- Вы на сайте рассказываете о возможности сохранить платежные данные, о том, как вы будете их использовать и как потом от этого отказаться.
- Виджет отображает пользователю все доступные способы оплаты. Если пользователь выберет способ оплаты, поддерживающий условное сохранение, виджет предложит ему сохранить данные для вашего магазина. Если пользователь согласится, при успешной оплате данные способа будут сохранены в ЮKassa, и вы сможете использовать идентификатор сохраненного способа оплаты для последующих платежей. Если не согласится, платеж пройдет без привязки данных к магазину.
Способы оплаты, которые поддерживают условное сохранение: кошелек ЮMoney, банковская карта.
Пример использования: привязка платежного средства к магазину для ускорения процесса оплаты при последующих платежах с самостоятельной реализацией экрана выбора способа оплаты.
Платеж с условным сохранением способа оплаты
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
— токен для инициализации виджета.{ "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 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
— токен для инициализации виджета.{ "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
.{ "id": "25564507-000f-5000-9000-19878c91d156", "status": "succeeded", "paid": true, "amount": { "value": "2.00", "currency": "RUB" }, "authorization_details": { "rrn": "10000000000", "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": "MasterCard", "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 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
— токен для инициализации виджета.{ "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. Далее проводите платеж как обычно.
Запоминание банковских карт пользователяАвтоплатежиТестирование автоплатежейСправочник виджетаТиповые сценарии интеграции виджета