tokenDecrypt
Выполняется с помощью команды tokenDecrypt.
Этот запрос позволяет выполнить расшифровку ApplePay/GooglePay токена для получения данных карты и последующих безакцептных списаний.
Использование этого метода возможно только для Продавцов с сертификатом соответствия PCI DSS.
Название |
Описание |
Формат |
Обязательный |
merchant_name |
Идентификатор Продавца. Выдается продавцу с параметрами тестового/боевого доступа |
Строка |
|
type |
Тип передаваемого токена (applepay /googlepay ) |
Строка |
|
token |
ApplePay/GooglePay токен в кодировке base64 |
Строка |
|
signature 1 |
Подпись запроса в кодировке base64 |
Строка |
|
1 Подпись формируется следующим образом:
- Составляется строка формата merchant_name+type, пример: TestMerchantapplepay
- Результат подписывается с помощью
Private Key
методом SHA-256 + RSA PKCS#1 v1.5
- Полученная строка кодируется в base64
2 Генерируется 2 пары ключей RSA - 2048 bit в PEM формате, мерчант передает свой Public Key
theMAP, theMAP в свою очередь передает свой Public Key
мерчанту
Пример запроса POST:
Content-Type: application/json
https:{domain}/tokenDecrypt
{
"type": "googlepay",
"merchant_name": "AMerchant",
"token": "eyJzaWduYXR1cmUiOiJNRVVDSUQzZDdzUFA1RVF...",
"signature": "nZS00Ke2Okj6ccTqwj+Yf5iHfLq3XKYzJtb8AO33jsBrEbIp..."
}
Пример реализации запроса в программном коде:
curl -X POST \
https:{domain}/tokenDecrypt \
-H 'Content-Type: application/json' \
-d '{"type": "googlepay","merchant_name": "AMerchant","token": "eyJzaWduYXR1cmUiOiJNRVVDSUQzZDdzUFA1RVF...","signature": "nZS00Ke2Okj6ccTqwj+Yf5iHfLq3XKYzJtb8AO33jsBrEbIp..."}'
Название |
Описание |
Фромат |
Success |
Флаг успешности операции |
true/false |
Data 1 |
Зашифрованные, с помощью Public Key , карточные данные |
Строка в кодировке base64 |
Signature 2 |
Подпись ответа |
Строка в кодировке base64 |
MerchantName |
Наименование продавца |
Строка |
1 Для расшифровки данных требуется:
Декодировать строку из base64
Результат расшифровать методом PKCS#1 v1.5, с помощью Private Key
Результат расшифровки:
{"pan":"4111111111111111","emonth":12,"eyear":21}
2 Для проверки подписи требуется:
Декодировать строку из base64
Произвести проверку методом PKCS#1 v1.5 строки, полученной из MerchantName
+Type
+Success
+ErrCode
Пример успеха:
TestMerchantapplepaytrue
Пример неуспеха:
TestMerchantapplepayfalseWRONG_PARAMS
Пример ответа на успешный запрос:
{
"Success": true,
"Data": "NUq05+myUdUQAMBwBsd4ESaulXsrAdTSYub9woNt4cESWcTPl5rxbp3HW1KCcUM5MJGS3WqWERM/CokZu9I7K+JSTXtmOaYInFyT3qPl5RAVWgSYoZUlIE5WOFp+sNHn5KEKWtVY18hjj6utYgfGMqBcGMd9uDOJGydIWS9y3yizE3sygGGtOdL1CUE0aPUbw2o096p4+q6sQXYH3fb6HolWURKRSHmTnbJnWd4UkVS52joSkHdv7nS743bjCRBgzHDqQINLix2XGJ/VEoxNRWVUvrU88NpPiHyWtX2XDPEokMXaXtdRbevPJ0hj2kyNFxy1HbLf6DBb81B1esoTlg==",
"Signature": "pu7YK2loiUTGeWr+Bb8MvVRVEd7en20EPjvHUUZnfo6leOP5zoSR762IJGRQn6DPMdxy7/JhsB65sASevCRKgRYB+X80WTUIxHTLzYRUs7HMgIJvRkGCiMm0lHA+eKN1pryIH6SsewMKyXPFlDl/+w3V+IDjgD7C6Yhx4NEDT9RVY8vDVObyh8VaTjMGnRZx2haF+7RwGFuTLrYzRleoR2fasGjnkYgCLn6/tzPF9cqA7VLpO5IiYwy3s1l+jWRg6Q5AV2J6E7ttgJm5Wu3f6Tqv64V49i4SmnAIEfPOJppJbKZ+30aKTYEHRpaMy53B4akAd+JhbYy76dtd6JaQ==",
"MerchantName": "AMerchant"
}
Пример ответа на не успешный запрос:
{
"Success": false,
"ErrCode": "WRONG_PARAMS",
"ErrMessage": "operation not allowed",
"Signature": "yXkao+MyG9K9LY5bL2ohKGECox1HD8CRYWyax4t5V7vN2QmkoYnk18aM9eU9fN8b3cAbhTphoZ5Z5ps2szVdDozHBONZov6WDmmkpvB5+IonCVxDG3AIAeBEB+KlTyBTF3Xt43QdCE8YtzmUmdRuTnYhGF1eyG661A4a6S9V+SC6Yej6WIJcAVFAtFrr4wZI/z3m1PJFhA0WoKpan0Vp1GWJ7OCT7p7pBedyJP5AEi+4lphXAeXYqteMA4/wVPWCdmXv02illmrwYguNIcnCvkmJig+VOMxT9UTKma2sf3iwLrwy/omKgrDWrBhDzx12rahI6OqQscBgEt8PNwGc8Q=="
}