Если встраиваете платежные формы с помощью веб и мобильных SDK ЮKassa, для проведения платежа вам нужно обменять в SDK платежные данные на токен и использовать его при создании платежа.
Оплата токеном нужна, только если вы проводите платежи с помощью Android SDK, iOS SDK, Checkout.js, Checkout UI.
Необходимо получить у менеджера ЮKassa разрешение на проведение платежей с использованием токена.
Шаг 1. Получите платежный токен в SDK. Он будет содержать выбранный способ оплаты, платежные данные. Если вы используете мобильный SDK, в токене также будут данные о сценарии подтверждения платежа.
Шаг 2. Передайте токен на ваш сервер.
Шаг 3. Создайте платеж , в параметре
payment_token
передайте платежный токен. Если вы используете веб SDK и собираетесь проводить платеж с аутентификацией по 3-D Secure, передайте объект confirmation
с типом redirect
и адресом страницы, на которую вернется пользователь.Токен одноразовый, срок действия — 1 час. Если не создать платеж в течение часа, токен нужно будет запрашивать заново.
Пример запроса при использовании веб SDK
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "payment_token": "eyJ0eXBlIjoiY2hlY2tvdXRfanNfYmFua19jYXJkIiwiZW5jcnlwdGVkIjoiMFk3Q3dVVXFVSUE0bXVUWW5EVXhBRG9PUFFCRHByQ3F6Y0cvcGw5SDFZV0xKejROaS9wVkZ0amhmT3N1b1NzVGp2cFJzYkRxSTdLWStYNjZjdW45STczTC8zQXFPOGVwV0dtSFEyV1pXR1lHM3pNdUxyNHp1WmJzMW85bDh5czdjT0ZuMEc5T3hma0kyNitQcXBuSGU3NGZwYzRXU1l2TUh4MFpyYVdRNW5UdFlDVWQyZz09IiwiaW5pdFZlY3RvciI6Ik50d0lpZVFFaG9Cb3FJRzFxT29yREE9PSIsImtleUlkIjoiT2pOQUJrL21Uam5kTGtWZlR1U1F0dz09In0=", "amount": { "value": "2.00", "currency": "RUB" }, "confirmation": { "type": "redirect", "enforce": false, "return_url": "https://www.merchant-website.com/return_url" }, "capture": false, "description": "Заказ №72" }'
Пример запроса при использовании мобильного SDK
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "payment_token": "eyJ0eXBlIjoiY2hlY2tvdXRfanNfYmFua19jYXJkIiwiZW5jcnlwdGVkIjoiMFk3Q3dVVXFVSUE0bXVUWW5EVXhBRG9PUFFCRHByQ3F6Y0cvcGw5SDFZV0xKejROaS9wVkZ0amhmT3N1b1NzVGp2cFJzYkRxSTdLWStYNjZjdW45STczTC8zQXFPOGVwV0dtSFEyV1pXR1lHM3pNdUxyNHp1WmJzMW85bDh5czdjT0ZuMEc5T3hma0kyNitQcXBuSGU3NGZwYzRXU1l2TUh4MFpyYVdRNW5UdFlDVWQyZz09IiwiaW5pdFZlY3RvciI6Ik50d0lpZVFFaG9Cb3FJRzFxT29yREE9PSIsImtleUlkIjoiT2pOQUJrL21Uam5kTGtWZlR1U1F0dz09In0=", "amount": { "value": "2.00", "currency": "RUB" }, "confirmation": { "type": "redirect", "enforce": false, "return_url": "https://www.merchant-website.com/return_url" }, "capture": false, "description": "Заказ №72" }'
Шаг 4. Реализуйте сценарий подтверждения.
Если вы используете веб SDK и проводите платеж с аутентификацией по 3-D Secure, перенаправьте пользователя на
confirmation_url
, который придет в объекте Платежа .Если вы используете мобильный SDK, передайте
confirmation_url
в мобильный SDK.Пример созданного объекта платежа
JSON
{ "id": "23d93cac-000f-5000-8000-126628f15141", "status": "pending", "paid": false, "amount": { "value": "2.00", "currency": "RUB" }, "confirmation": { "type": "redirect", "confirmation_url": "<Ссылка для прохождения 3-D Secure>" }, "created_at": "2019-01-22T14:30:45.129Z", "description": "Заказ №72", "metadata": {}, "recipient": { "account_id": "100001", "gateway_id": "1000001" }, "refundable": false, "test": false }
Шаг 5. Дождитесь успешного завершения платежа: подождите, когда придет уведомление от ЮKassa, или периодически отправляйте запросы, чтобы получить информацию о платеже .
iOS SDKAndroid SDKCheckout.jsCheckout UI