Перейти к содержанию

Yandex Pay в вашем мобильном приложении

Если вы хотите разместить кнопку Yandex Pay для приема платежей в вашем мобильном приложении, вам необходимо выполнить следующее:

1. Зарегиcтрироваться в Yandex Pay. Ознакомиться со списком запрещенных товаров и Правилами оформления бренда при размещении кнопки Yandex Pay.

2. Получить платежный токен Yandex Pay, используя следующие SDK:

  • Yandex Pay Android SDK

    При интеграции по Yandex Pay Android SDK на Шаге 6. Задайте обработчик кнопки укажите следующие параметры в секции paymentMethods.card.YPCardPaymentMethod:

    Параметр Описание
    Gateway.from {psp.yandex_pay.gateway_id}
    GatewayMerchantID.from ID магазина в системе bePaid.
  • Yandex Pay iOS SDK

    При интеграции по Yandex Pay iOS SDK при добавлении кнопки Yandex Pay на экране в Swift или Objective-C проектах укажите следующие параметры в секции listOf.PaymentMethod:

    Параметр Описание
    gateway {psp.yandex_pay.gateway_id}
    gatewayMerchantId ID магазина в системе bePaid.

3. Отправить запрос на проведение транзакции с зашифрованным токеном Yandex Pay.

Запрос

Отправьте запрос оплаты, авторизации или взимания платы, в котором необходимо передать зашифрованный токен Yandex Pay как значение параметра request.credit_card.token в формате, описанном ниже.

Для рекуррентных платежей или платежей по сохраненной карте, передайте параметр request.additional_data.contract в запросе оплаты, авторизации или взимания платы, чтобы получить в ответ токен карты для последующих операций оплаты без участия пользователя.

Формат зашифрованного токена Yandex Pay при передаче его в качестве токена карты

Передавайте зашифрованный токен Yandex Pay в запросах в качестве токена карты в формате $begateway_yandex_pay_1_0_0$<base64_PaymentToken_here>, где:

  • $begateway_yandex_pay_1_0_0$ - обязательный префикс при передаче зашифрованного токена Yandex Pay;
  • <base64_PaymentToken_here> - это полученный от Yandex Pay токен в формате JSON, сконвертированный в формат Base64.
Пример структуры зашифрованного токена Payment Token сервиса Yandex Pay
{
   "type":"Yandex",
   "signedMessage":"{\"encryptedMessage\":\"3EIGHhaRWlLBY3CQ4+hMWfbiE8vDLy2vwG5VkY5XgILaq5Vjh/MED5XO1w6KwWnQiT3TJDV5rj/ixLHzPjpN4eUwkaQTgwUcFGYSCbwu4paBhuaOlYKvx3UhxlGs+sWfCxlJHawFWlEcX254u/4yc45CnIAmaJLGR7RLvAX66VOiCO/GpeqPZXpctRzj068TThESmRKv/2Vb9S54CRID1Z0+QIamZIwoKhkEt99F0EXwnfKdlzakpL+N4i99X3EkavQA2Im3lFJ6C9MvIKqahnNF9E89MIAigsnYZ+/Zu7QvtfAe1mVbLDMGJRFqk7NYF0Q/XXrwajJCMFcCvTNkSXh0WmyWI7Fa9r1+EydJmaou1XTo/RUvvbfJ3l7asepcvFcs7wcKUgi9wWGKe9td0ny4EqzVi++hm/ZiJhcSknQBwsNBSHOy7aJZVoxI5DUL7gEV7X3KAS0Q\",\"tag\":\"nPCkBdXgdvb+VhTSM5Rc9QdvEpPFd1mNtSyE0cWCuZU=\",\"ephemeralPublicKey\":\"BFig2qqGHsX/LA6GrFbHcG83eLjTAiBkTTkJe5lki37WMMZUJjfT8tTLOd+vhRmkIru4hcMRfpxfER13WIhNayE=\"}",
   "protocolVersion":"ECv2",
   "signature":"MEUCIQDOBSSB1yFm3E9gM1kTp3CHMkhHM1g4dsYKo9/TXiEhmwIgSMCp2t1tCorBjhGw1k9Ev9tw4IyKVUrMAbJnfAg0Ng0=",
   "intermediateSigningKey":{
      "signedKey":"{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqYNePt6BPgCv5JxfO9dF2vrSqmnp4Mhe/vF+XO+Devbs6/KVpVVoTD8LLcAo4TZh6IuODVnVpHrTObhg3HJVJA==\",\"keyExpiration\":\"1764950892000\"}",
      "signatures":[
         "MEQCIDRslMW7wNZbpqVw/dD7hDQh30hGhqfjfWTBvc7zAYJSAiAGAvjAslA2AxwdAEuOfacFr6DaE5yiiUuUtM6DUreZYg=="
      ]
   }
}
Пример запроса оплаты с зашифрованным токеном Yandex Pay
{
"request": {
   "amount": 100,
   "currency": "RUB",
   "description": "Yandex Pay test transaction",
   "tracking_id": "Your unique ID",
   "credit_card": {
      "token": "$begateway_yandex_pay_1_0_0$eyJ0eXBlIjoiWWFuZGV4Iiwic2lnbmVkTWVzc2FnZSI6IntcImVuY3J5cHRlZE1lc3NhZ2VcIjpcInExNHBnMzNWQlV6NW9WTE1vN2R6WVFHcDNRb2h3MGY5dWtqN0dOV2w4VXVZL2hwQ0cwaDUxOHVPVjBCSzJ6TXJEZDI2YXR5TFJReWtMeWdyZ2tIWS80SXJhSWFTV29wYVN1a0h5dkJhZ3RSdENqbWwvSXJJK2dhdVNwSXRnL3ZWY2FXdkJLcnhzbzlaQkd5SWlqeGI0TzRwUGtna3BEc1g3NTZuSjVGTlAxelhKNnFLSUFWemtxb1JHWS9aOVBXZ2Ryd3IvMjdyWi9iRzNCT2RIOUtKVFpkNDV5MVhlWEhaYWZ4K3lzSjhsclVEUlpsWmFwZUlSYTNLbDZ2ekhiTkpRak42RjNJWkYxL2g5Q3FwcFQ5VDJ1VWpVb29PQ1hERVVmMUZjNTc0SHJ3eW82SDBTaWpFQnRocHluUWxMai80cUdlSjFudWlpYTRuRUVxNGtRYTIzMU94UWNyREFMa29rKzBvZjl1T0tTOTZEN1N6Qzh6OUdPRm9Za01uZHJON0dzTGJyRUY4a3d2a1lkU1dCMWxlY0tIcGFxWVpUZmZRTXNCMzhRUHFqN2tGaWZtNGJhSE5LMSsxUlY5MmFzdmErMGs5WFRBS1dXa2NTTm1tb0pweWNLc2IxcjJoTHcxQk1MczFJZlVFVm9zVzRsdUkweDRNZUxZWFFzdGY3eUoxdC9ZdzhEQm1kQ3ZmSGxRS2Z5STdSMUJUT2wxVUdtQkgycEloRVRVTXlRPT1cIixcInRhZ1wiOlwiL3N4NFgxSktvL1Q4SjhmMXp0dTZzN3hyRVdiNW9XTG5kczJjVXJ1d1l6VT1cIixcImVwaGVtZXJhbFB1YmxpY0tleVwiOlwiQkxGQWdtVGJHTWxJRXdZQzUyQU1JOGVpVG5ua2NsVzZ2a3lYdmlBcHkyVjYzNHp0cGVRdW5oS1liMnNkY1Z3bkpPY0hQVWlYZGZFb0hqVk9GQ3Bhc1BvPVwifSIsInByb3RvY29sVmVyc2lvbiI6IkVDdjIiLCJzaWduYXR1cmUiOiJNRVlDSVFDUUVIanRxSDBVb2MyTVVUNHR6YjZ3K2dJczBLRm5OY29sZlo3enYwWFBzd0loQU05ZHFVb1hqNXJwY1M5ZTdaYzZIekRwZVllK0hCNC9XMW5mdVBrb0lPZWgiLCJpbnRlcm1lZGlhdGVTaWduaW5nS2V5Ijp7InNpZ25lZEtleSI6IntcImtleVZhbHVlXCI6XCJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVxWU5lUHQ2QlBnQ3Y1SnhmTzlkRjJ2clNxbW5wNE1oZS92RitYTytEZXZiczYvS1ZwVlZvVEQ4TExjQW80VFpoNkl1T0RWblZwSHJUT2JoZzNISlZKQT09XCIsXCJrZXlFeHBpcmF0aW9uXCI6XCIxNzY0OTUwODkyMDAwXCJ9Iiwic2lnbmF0dXJlcyI6WyJNRVFDSURSc2xNVzd3TlpicHFWdy9kRDdoRFFoMzBoR2hxZmpmV1RCdmM3ekFZSlNBaUFHQXZqQXNsQTJBeHdkQUV1T2ZhY0ZyNkRhRTV5aWlVdVV0TTZEVXJlWllnPT0iXX19"
   }
   }
}
Ответ

Ответ на запрос оплаты по токену Yandex Pay будет возвращен синхронно с его статусом и будет полностью соответствовать ответам операций оплаты или авторизации.