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
будет возвращен вместе с конечным статусом операции и полностью соответствует ответу по операциям оплаты или авторизации.