Платежи токеном
Если встраиваете платежные формы с помощью веб и мобильных SDK Яндекс.Кассы, для проведения платежа вам нужно обменять в SDK платежные данные на токен и использовать его при создании платежа.
 Особенности
Оплата токеном нужна, только если вы проводите платежи с помощью Android SDK, iOS SDK, YandexCheckout.js, YandexCheckout UI.
Необходимо получить у менеджера Яндекс.Кассы разрешение на проведение платежей с использованием токена.
 Проведение платежа
Шаг 1. Получите платежный токен в SDK. Он будет содержать выбранный способ оплаты, платежные данные. Если вы используете мобильный SDK, в токене также будут данные о сценарии подтверждения платежа.
Шаг 2. Передайте токен на ваш сервер.
Шаг 3. Создайте платеж , в параметре
payment_token
передайте платежный токен. Если вы используете веб SDK и собираетесь проводить платеж с аутентификацией по 3-D Secure, передайте объект
confirmation
с типом
redirect
и адресом страницы, на которую вернется пользователь.
Пример запроса при использовании веб SDK
cURL
PHP
Python
curl https://payment.yandex.net/api/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://payment.yandex.net/api/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,
  "requestor": {
    "type": "merchant",
    "account_id": "100001"
  },
  "test": false
}
Шаг 5. Дождитесь успешного завершения платежа: подождите, когда придет уведомление от Яндекс.Кассы, или периодически отправляйте запросы, чтобы получить информацию о платеже .
 Что почитать еще
iOS SDKAndroid SDKYandexCheckout.jsYandexCheckout UI