Проведение платежа с использованием Checkout.js
Если используете Checkout.js, для проведения платежа вам нужно обменять в библиотеке платежные данные на токен и передать его в запросе к API при создании платежа.
Необходимо получить у менеджера ЮKassa разрешение на проведение платежей с использованием токена.
Платежи токеном
Шаг 2. Передайте токен на ваш сервер.
Шаг 3. Создайте платеж, в параметре
payment_token
передайте платежный токен. Если собираетесь проводить платеж с аутентификацией по 3-D Secure, передайте объект confirmation
с типом redirect
и адресом страницы, на которую вернется пользователь.Токен одноразовый, срок действия — 1 час. Если не создать платеж в течение часа, токен нужно будет запрашивать заново.
Пример запроса
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "payment_token": "pt-28cd3959-0000-500c-a000-03b4de9b24a7", "amount": { "value": "2.00", "currency": "RUB" }, "confirmation": { "type": "redirect", "enforce": false, "return_url": "https://www.example.com/return_url" }, "capture": false, "description": "Заказ №72" }'
Шаг 4. Если платеж вернулся в статусе
pending
, перенаправьте пользователя на confirmation_url
.Пример созданного объекта платежа
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": "100500", "gateway_id": "100700" }, "refundable": false, "test": false }
Шаг 5. Дождитесь успешного завершения платежа: подождите, когда придет уведомление от ЮKassa, или периодически отправляйте запросы, чтобы получить информацию о платеже.
Что почитать еще