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

Yandex Pay платежи c расшифрованным токеном

Система UnonaPay также может обрабатывать запросы оплаты или авторизации с уже расшифрованными данными encryptedMessage из платежного токена, выдаваемого Yandex.

Info

Для хранения и расшифровки данных платежного токена необходимо соответствовать требованиям Payment Card Industry Data Security Standard (PCI DSS).

Запрос

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

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

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

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

  • $begateway_yandex_pay_decrypted_1_0_0$ - это обязательный префикс при передаче расшифрованного токена Yandex Pay;
  • <base64-decoded_encryptedMessage_here> - это расшифрованный объект encryptedMessage из объекта signedMessage платежного токена, в формате JSON, сконвертированный в формат Base64.

Ожидаемый формат JSON расшифрованного объекта encryptedMessage

Формат данных объекта encryptedMessage для "paymentMethod":"CARD" и "authMethod":"CLOUD_TOKEN":

{
   "paymentMethod":"CARD",
   "paymentMethodDetails":{
      "authMethod":"CLOUD_TOKEN",
      "pan":"1111222233334444",
      "expirationMonth":10,
      "expirationYear":2020,
      "cryptogram":"AAAAAA...",
      "eci":"05"
   },
   "paymentAccountReference":"V1123..",
   "transactionDetails":{
      "amount":100,
      "currency":"RUB"
   },
   "gatewayMerchantId":"Your shop ID",
   "messageId":"Some message ID",
   "messageExpiration":"1577862000000"
}

Формат данных объекта encryptedMessage для "paymentMethod":"CARD" и "authMethod":"PAN_ONLY":

{
   "paymentMethod":"CARD",
   "paymentMethodDetails":{
      "authMethod":"PAN_ONLY",
      "pan":"1111222233334444",
      "expirationMonth":10,
      "expirationYear":2020
   },
   "transactionDetails":{
      "amount":100,
      "currency":"RUB"
   },
   "gatewayMerchantId":"some-merchant-id",
   "messageId":"some-message-id",
   "messageExpiration":"1577862000000"
}
Пример запроса оплаты с расшифрованным токеном Yandex Pay
{
"request":{
   "amount":100,
   "currency":"RUB",
   "description":"Yandex Pay transaction",
   "tracking_id":"Your unique ID",
   "credit_card":{
      "token":"$begateway_yandex_pay_decrypted_1_0_0$eyAgInBheW1lbnRNZXRob2QiOiAiQ0FSRCIsICAicGF5bWVudE1ldGhvZERldGFpbHMiOiB7ICAgICJhdXRoTWV0aG9kIjogIlBBTl9PTkxZIiwgICAgInBhbiI6ICIxMTExMjIyMjMzMzM0NDQ0IiwgICAgImV4cGlyYXRpb25Nb250aCI6IDEwLCAgICAiZXhwaXJhdGlvblllYXIiOiAyMDIwLCAgfSwgICJ0cmFuc2FjdGlvbkRldGFpbHMiOiB7ICAgICJhbW91bnQiOiAxMDAsICAgICJjdXJyZW5jeSI6ICJSVUIiICB9LCAgImdhdGV3YXlNZXJjaGFudElkIjogInNvbWUtbWVyY2hhbnQtaWQiLCAgIm1lc3NhZ2VJZCI6ICJzb21lLW1lc3NhZ2UtaWQiLCAgIm1lc3NhZ2VFeHBpcmF0aW9uIjogIjE1Nzc4NjIwMDAwMDAifQ=="
   }
}
}
Ответ

Ответ на запрос оплаты с encryptedMessage будет возвращен вместе с конечным статусом операции и полностью соответствует ответу по операциям оплаты или авторизации.