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

Yandex Pay на собственной платежной странице

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

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

  2. Выбрать и использовать подходящий способ интеграции:

Регистрация в Yandex Pay

Если вы хотите использовать кнопку Yandex Pay вне платежного виджета, вам необходимо зарегистрироваться в Yandex и оставить заявку на подключение. Требуется получить одобрение от Yandex.

При успешном рассмотрении заявки вам будет выдан merchant_id.

Yandex Pay для вебсайтов с использованием библиотеки bePaid

Для приема платежей Yandex Pay на сайте Вы можете воспользоваться библиотекой, разработанной bePaid. Она совместима по параметрам и поведению с библиотекой платежного виджета.

1. Установите скрипт для подключения библиотеки к сайту:

<script type="text/javascript" src="https://js.bepaid.by/widget/yandex_pay.js"></script>

2. Разместите блок на веб-странице для отображения кнопки Yandex Pay:

<div id="yandex-pay-button">
  <div id="yandex-pay" onclick="pay()" class="yandex-pay-button-with-text" lang="ru-RU"></div>
</div>

3. Добавьте следующий JavaScript-код для осуществления платежа через Yandex Pay. Запрос на обработку платежа будет совершаться автоматически.

<script>
var params = {
  checkout_url: 'https://checkout.bepaid.by',
  yandex_pay: {
    yandex_pay_merchant_id: 'Your Merchant ID',
  },
  yandexPayContainerId: 'yandex-pay-button',
  supportedNetworks: ['visa', 'masterCard', 'mir'],
  token: '3241e439f8c87d941d92621a4bdc030d4c9a69c67f3b0cfe12de4a13cc34aa51'
}
const yandexPay = new YandexPay(params);
this.pay = yandexPay.pay;
</script>
Параметр Описание
checkout_url https://checkout.bepaid.by
yandex_pay_merchant_id Идентификатор торговца Yandex, полученный при регистрации в Yandex Pay.
yandexPayContainerId ID контейнера, к которому будет добавлена кнопка Yandex Pay.
supportedNetworks Массив поддерживаемых карточных платежных систем. Установите как visa, masterCard, mir.
token Токен платежа. Для получения токена выполните запрос, описание которого размещено на странице Токен платежа.
public_key * условно обязательный
Публичный ключ магазина. Обязателен, если не прислан параметр token.

Yandex Pay для вебсайтов с использованием Yandex Pay Web SDK

При собственной реализации интеграции для приема платежей Yandex Pay на сайте вам необходимо:

1. Получить платежный токен Yandex Pay, используя Интеграцию Yandex Pay Web SDK.

Для обработки платежа системой bePaid на Шаге 2 Создание платежа Yandex Pay Web SDK вам необходимо использовать следующие параметры в массиве paymentMethods:

Параметр Описание
gateway Идентификатор bePaid у Yandex. Установите как {psp.yandex_pay.gateway_id}.
gatewayMerchantId ID магазина в системе bePaid.

2. Отправить запрос на проведение транзакции с зашифрованным токеном 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 будет возвращен вместе с его статусом и будет полностью соответствовать ответам операций оплаты или авторизации.