Створення картки з механізмом авторизації

UAPAY - національний платіжний сервіс

Створення картки з механізмом авторизації

Крок 1: Створення cесії

Для того, щоб створити запит на створення сесії потрібно:

  1. Написати запит на створення сесії

  2. Підписати його за допомогою бібліотеки jwt

  3. Виконати запит на створення сесії

  4. Отримати відповідь і розшифрувати її, там ми отрмаємо id сесії

Запит на URL /api/sessions/create методом POST

Для початку роботи з системою потрібно створити сесію для свого магазину, від імені якої будуть виконуватись всі подальші дії
Створювати сесію перед кожним платежем не обов'язково, але ми рекомендуємо оновлювати сесію хоча б раз в день

Створення сесії

Написання запиту

Для початку, напишемо наш запит:  

{ "params":{ "clientId":"636" }, "iat": "1534862833" }

де:

Параметр

Опис

Тип

Чи обов'язковий це параметр?

Приклад

Параметр

Опис

Тип

Чи обов'язковий це параметр?

Приклад

clientid

id користувача

(можна отримати в кабінеті компанії)

INT

Так

1

iat

International Atomic Time. В нашій ситуації

це "UNIX-час", тобто, кількість секунд, яка пройшла з 1 січня 1970 р. до моменту виконання запиту

INT

Так

1534862833

Підписання запиту

Підпишемо наш запит за допомогою jwt та алгоритму HS256. Сам процес підписання може мати відмінності в залежності від того, яку реалізацію бібліотеки ви оберете. Але, після нього ви отримаєте рядок, в якому буде зашифровано ваш запит:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXJhbXMiOnsiY2xpZW50SWQiOiI2MzYifSwiaWF0IjoiMTUzNDg2MjgzMyJ9.msXU79dd1DcVo4gwIUqBF_2PSLg0eFNEVCzRTiOvkfw

Формування запиту для відправлення на сервер

У запиті потрібно передавати і запит у незашифровану вигляді, а також, у підписаному (зашифрованому), у вигляді змінної "token". Тобто, наш запит буде виглядати так:

{ "params": { "clientId": "636" }, "iat": 1534862833, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXJhbXMiOnsiY2xpZW50SWQiOiI2MzYifSwiaWF0IjoiMTUzNDg2MjgzMyJ9.msXU79dd1DcVo4gwIUqBF_2PSLg0eFNEVCzRTiOvkfw" }

де:

Параметр

Опис

Тип

Чи обов'язковий це параметр?

Приклад

Параметр

Опис

Тип

Чи обов'язковий це параметр?

Приклад

clientid

id користувача

(можна отримати в кабінеті компанії)

INT

Так

1

iat

International Atomic Time. В нашій ситуації

це "UNIX-час", тобто, кількість секунд, яка пройшла

з 1 січня 1970 р. до моменту виконання запиту

INT

Так

1534862833

token

Той самий запит, але який вже попередньо

зашифрований за допомогою бібліотеки jwt секретним ключем методом HS256

STRING

Так

"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXJhbXMiOnsiY2xpZW50SWQiOiIxMzIifSwiaWF0IjoxNTI5OTI3NTUyfQ.I3Ap79vaShIxuBFjbB-8gs1d2j1EoEVchf0DP0DGICg"

Відправлення запиту

Запит треба виконати методом POST,  тіло запиту має бути у форматі application/json. Адреса https://api.demo.uapay.ua/api/sessions/create .

У відповідь ми отримаємо:

{ "status": 1, "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImIzOGNlY2QzLTI4ZGItNDFmNC05OTM1LTlmNDExYWM3YTVlYiIsImlhdCI6MTUzNDg2Mjg0Mn0.cXRUNzI75I3HKlE25Uzy3N-CmGDfVE4K5de98sGJmAg" } }

Де:

Параметр

Опис

Тип

Приклад

Параметр

Опис

Тип

Приклад

status

Коротке повідомлення про успіх або помилку при виконанні запиту.

1 - запит виконано успішно,

0 - сталась помилка при виконанні запиту

INT

1 або 0

token

Підписана UAPAY відповідь яка містить id сесії.

STRING

"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImIzOGNlY2QzLTI4ZGItNDFmNC05OTM1LTlmNDExYWM3YTVlYiIsImlhdCI6MTUzNDg2Mjg0Mn0.cXRUNzI75I3HKlE25Uzy3N-CmGDfVE4K5de98sGJmAg"


Розшифровка відповіді

Тепер ми можемо розшифрувати відповідь. Для цього треба застосувати функцію decode бібліотеки jwt, передати їй ваш секретний ключ, параметр алгоритму (HS256) та рядок який ви отримали у відповіді після запиту у параметрі "token". В результаті ви отримаєте 

{ "id": "b38cecd3-28db-41f4-9935-9f411ac7a5eb", "iat": 1534862842 }

Де:

Параметр

Опис

Тип

Приклад

Параметр

Опис

Тип

Приклад

status

Коротке повідомлення про успіх або помилку при виконанні запиту.

1 - запит виконано успішно,

0 - сталась помилка при виконанні запиту

INT

1 або 0

id

id сесії

STRING

"b38cecd3-28db-41f4-9935-9f411ac7a5eb"

iat

International Atomic Time. В нашій ситуації

це "UNIX-час", тобто, кількість секунд, яка пройшла з 1 січня 1970 р. до моменту виконання запиту

INT

1534862842




Крок 2: Створення картки

Запит для створення картки.

URL: https://api.demo.uapay.ua/api/cards/create  

{ "data":{ "pan":"1111222233334444", "expiresAt":"2020-01" }, "params":{ "sessionId":"690f8123-3a12-4eef-bcac-2fb82a34bd11" } }

де:

Параметр

Опис

Тип

Чи обов'язковий це параметр?

Приклад

Параметр

Опис

Тип

Чи обов'язковий це параметр?

Приклад

data.pan

Номер картки (16 знаків)

STRING

Так

"1111222233334444"

data.expiresAt

Термін дії картки

STRING

Ні

"2020-01"

params.sessionId

ID сессіії

STRING

Так

"690f8123-3a12-4eef-bcac-2fb82a34bd11"

Підписання запиту

Підпишемо наш запит за допомогою jwt та алгоритму HS256. Сам процес підписання може мати відмінності в залежності від того, яку реалізацію бібліотеки ви оберете. Але, після нього ви отримаєте рядок, в якому буде зашифровано ваш запит:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXJhbXMiOnsiY2xpZW50SWQiOiI2MzYifSwiaWF0IjoiMTUzNDg2MjgzMyJ9.msXU79dd1DcVo4gwIUqBF_2PSLg0eFNEVCzRTiOvkfw

Формування запиту для відправлення на сервер

Потрібно передавати запит у незашифровану вигляді, а також, у підписаному (зашифрованому), у вигляді змінної "token". Тобто, наш запит на створення сесії буде виглядати приблизно так:

{ "data":{ "pan":"1111222233334444", "expiresAt":"2020-01" }, "params":{ "sessionId":"690f8123-3a12-4eef-bcac-2fb82a34bd11" }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXJhbXMiOnsiY2xpZW50SWQiOiI2MzYifSwiaWF0IjoiMTUzNDg2MjgzMyJ9.msXU79dd1DcVo4gwIUqBF_2PSLg0eFNEVCzRTiOvkfw" }



Розшифровка відповіді від серверу

Тепер ми можемо розшифрувати відповідь. Для цього треба застосувати функцію decode бібліотеки jwt, передати їй ваш секретний ключ, параметр алгоритму (HS256) та рядок який ви отримали у відповіді після запиту у параметрі "token". В результаті ви отримаєте 

{ "status": 1, "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImIzOGNlY2QzLTI4ZGItNDFmNC05OTM1LTlmNDExYWM3YTVlYiIsImlhdCI6MTUzNDg2Mjg0Mn0.cXRUNzI75I3HKlE25Uzy3N-CmGDfVE4K5de98sGJmAg" } }

Де:

Параметр

Опис

Тип

Приклад

Параметр

Опис

Тип

Приклад

status

Коротке повідомлення про успіх або помилку при виконанні запиту.

1 - запит виконано успішно,

0 - сталась помилка при виконанні запиту

INT

1 або 0

token

Підписана UAPAY відповідь яка містить id картки.

STRING

"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImIzOGNlY2QzLTI4ZGItNDFmNC05OTM1LTlmNDExYWM3YTVlYiIsImlhdCI6MTUzNDg2Mjg0Mn0.cXRUNzI75I3HKlE25Uzy3N-CmGDfVE4K5de98sGJmAg"

Розшифрована відповідь

{ "id":"11389a5a-efb5-4e1d-85c1-068df5bb0357", "panMasked":"1111224444", "panHashed":"AwHkjhy32jz/9zF9J3koov8fTChboACkdYN+3Ye4=" }

де:

Параметр

Опис

Тип

Чи обов'язковий це параметр?

Приклад

Параметр

Опис

Тип

Чи обов'язковий це параметр?

Приклад

id

id картки в системі UAPAY

STRING

Так

"11389a5a-efb5-4e1d-85c1-068df5bb0357"

panMasked

Маскований PAN картки

STRING

Так

"1111224444"

panHashed

Хеш PAN картки

STRING

Так

"AwHkjhy32jz/9zF9J3koov8fTChboACkdYN+3Ye4="




Крок 3: Запит на підтвердження карти

Перед створенням платежу є обов'язковим наявніть сесії, якщо її немає, треба створити як описано на кроці 1.

На цьому кроці ми створюємо платіж. Для цього потрібно виконати такі дії:

  1. Написати запит на створення платежу, додати в нього id сесії

  2. Підписати його за допомогою бібліотеки jwt

  3. Виконати запит на створення платежу

  4. Отримати відповідь та розшифрувати її. У відповіді будуть номер замовлення, номер платежу, id платежу та ключ платежу. Останні два потрібні для наступного кроку (підтвердження платежу).



Написання запиту

Запит треба виконати методом POST,  тіло запиту має бути у форматі application/json. Адреса https://api.demo.uapay.ua/api/cards/confirm

Напишемо запит на створення платежу (замовлення):

{ "params":{ "id":"11389a5a-efb5-4e1d-85c1-068df5bb0357", "sessionId":"690f8123-3a12-4eef-bcac-2fb82a34bd11", "device": { "acceptHeader": "*/*", "ip": "91.137.205.117", "colorDepth": 24, "javaEnabled": false, "language": "en-US", "screenHeight": 864, "screenWidth": 1536, "windowHeight": 734, "windowWidth": 1479, "time": "2021-10-07T14:55:52.832Z", "timezoneOffset": -180, "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" } }, "data":{ "externalId":"000004", "secureCode":"123" } }

Де:

Параметр

Опис

Тип

Обов'язковий параметр чи ні?

Приклад

Параметр

Опис

Тип

Обов'язковий параметр чи ні?

Приклад

Параметри 

sessionId

id сесії яку ми отримали після розшифровки підписаної відповіді попереднього запиту. Цей параметр взагалі треба передавати у всіх запитах

STRING

Так

"4bda7e34-a1c7-4587-b43b-06c506388ce7"

id

ИД картки

STRING

Так

"11389a5a-efb5-4e1d-85c1-068df5bb0357"

device

Об'єкт з інформацією про браузер / пристрій платника

OBJECT

Так

{"acceptHeader":"*/*","ip":"91.137.205.117","colorDepth":24,"javaEnabled":false,"language":"en-US","screenHeight":864,"screenWidth":1536,"windowHeight":734,"windowWidth":1479,"time":"2021-10-07T14:55:52.832Z","timezoneOffset":-180,"userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"}

Данні

externalId

Унікальний номер платежу у системі клієнта. За допомогою цього параметру ви будете знати до якого замовлення\кошика\клієнта віднесено ту чи іншу оплату

STRING

Так

"000004", "1", "123"

secureCode

CVV

STRING

Так

"123"

Підписання запиту

Підписуємо запит таким саме чином, як і запит на створення сесії. Тобто, за допомогою бібліотеки jwt та ключа який ми отримали у кабінеті алгоритмом HS256. І отримуємо token:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXJhbXMiOnsiaWQiOiIxMTM4OWE1YS1lZmI1LTRlMWQtODVjMS0wNjhkZjViYjAzNTciLCJzZXNzaW9uSWQiOiI2OTBmODEyMy0zYTEyLTRlZWYtYmNhYy0yZmI4MmEzNGJkMTEiLCJkZXZpY2UiOnsiYWNjZXB0SGVhZGVyIjoiKi8qIiwiaXAiOiI5MS4xMzcuMjA1LjExNyIsImNvbG9yRGVwdGgiOjI0LCJqYXZhRW5hYmxlZCI6ZmFsc2UsImxhbmd1YWdlIjoiZW4tVVMiLCJzY3JlZW5IZWlnaHQiOjg2NCwic2NyZWVuV2lkdGgiOjE1MzYsIndpbmRvd0hlaWdodCI6NzM0LCJ3aW5kb3dXaWR0aCI6MTQ3OSwidGltZSI6IjIwMjEtMTAtMDdUMTQ6NTU6NTIuODMyWiIsInRpbWV6b25lT2Zmc2V0IjotMTgwLCJ1c2VyQWdlbnQiOiJNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS85Mi4wLjQ1MTUuMTU5IFNhZmFyaS81MzcuMzYifX0sImRhdGEiOnsiZXh0ZXJuYWxJZCI6IjAwMDAwNCIsInNlY3VyZUNvZGUiOiIxMjMifSwiaWF0IjoxNTM0ODY0MDI2fQ.May9uR8JQofJjmcUoD3pwhfUEtXhSzLuYtetPxzwsuc
{ "params":{ "id":"11389a5a-efb5-4e1d-85c1-068df5bb0357", "sessionId":"690f8123-3a12-4eef-bcac-2fb82a34bd11", "device": { "acceptHeader": "*/*", "ip": "91.137.205.117", "colorDepth": 24, "javaEnabled": false, "language": "en-US", "screenHeight": 864, "screenWidth": 1536, "windowHeight": 734, "windowWidth": 1479, "time": "2021-10-07T14:55:52.832Z", "timezoneOffset": -180, "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" } }, "data":{ "externalId":"000004", "secureCode":"123" }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXJhbXMiOnsiaWQiOiIxMTM4OWE1YS1lZmI1LTRlMWQtODVjMS0wNjhkZjViYjAzNTciLCJzZXNzaW9uSWQiOiI2OTBmODEyMy0zYTEyLTRlZWYtYmNhYy0yZmI4MmEzNGJkMTEiLCJkZXZpY2UiOnsiYWNjZXB0SGVhZGVyIjoiKi8qIiwiaXAiOiI5MS4xMzcuMjA1LjExNyIsImNvbG9yRGVwdGgiOjI0LCJqYXZhRW5hYmxlZCI6ZmFsc2UsImxhbmd1YWdlIjoiZW4tVVMiLCJzY3JlZW5IZWlnaHQiOjg2NCwic2NyZWVuV2lkdGgiOjE1MzYsIndpbmRvd0hlaWdodCI6NzM0LCJ3aW5kb3dXaWR0aCI6MTQ3OSwidGltZSI6IjIwMjEtMTAtMDdUMTQ6NTU6NTIuODMyWiIsInRpbWV6b25lT2Zmc2V0IjotMTgwLCJ1c2VyQWdlbnQiOiJNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS85Mi4wLjQ1MTUuMTU5IFNhZmFyaS81MzcuMzYifX0sImRhdGEiOnsiZXh0ZXJuYWxJZCI6IjAwMDAwNCIsInNlY3VyZUNvZGUiOiIxMjMifSwiaWF0IjoxNTM0ODY0MDI2fQ.May9uR8JQofJjmcUoD3pwhfUEtXhSzLuYtetPxzwsuc" }

Відправлення запиту на сервер

У відповідь ми отримаємо:

{ "status": 1, "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdGF0dXMiOjEsImRhdGEiOnsiaWQiOiJkMTMyMjBiNS1kZDY0LTQxNzUtYjFiNi04NjQ0ZjM1NzgwNjciLCJrZXkiOiJFR3l6Ylhrd00yVkw5bko4Q2d3MzhnR1dzU3hxcFI1ejFvYmRKUVhRdFZMNy5qYzBiY3RpZjc0Mzc3NTYwMzY2NCJ9LCJpYXQiOjE1MzQ4NjQwMjZ9.i-HLZnu350_IvPs0q6_Y6v2KMQnR5aFi8ZB4iRp0z90" } }

Де:

Параметр

Опис

Тип

Приклад

Параметр

Опис

Тип

Приклад

status

Коротке повідомлення про успіх або помилку при виконанні запиту.

1 - запит виконано успішно,

0 - сталась помилка при виконанні запиту

INT

1 або 0

token

Токен для розшифровки

STRING

"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdGF0dXMiOjEsImRhdGEiOnsiaWQiOiJkMTMyMjBiNS1kZDY0LTQxNzUtYjFiNi04NjQ0ZjM1NzgwNjciLCJrZXkiOiJFR3l6Ylhrd00yVkw5bko4Q2d3MzhnR1dzU3hxcFI1ejFvYmRKUVhRdFZMNy5qYzBiY3RpZjc0Mzc3NTYwMzY2NCJ9LCJpYXQiOjE1MzQ4NjQwMjZ9.i-HLZnu350_IvPs0q6_Y6v2KMQnR5aFi8ZB4iRp0z90"

Розшифровка підписаної відповіді

Тепер ми можемо розшифрувати відповідь. Для цього треба застосувати функцію decode бібліотеки jwt, передати їй ваш секретний ключ, параметр алгоритму (HS256) та рядок який ви отримали у відповіді після запиту у параметрі "token". В результаті ви отримаєте:

{ "status":1, "data":{ "id":"d13220b5-dd64-4175-b1b6-8644f3578067", "key":"EGyzbXkwM2VL9nJ8Cgw38gGWsSxqpR5z1obdJQXQtVL7.jc0bctif743775603664" } }

Де:

Параметр

Опис

Тип

Приклад

Параметр

Опис

Тип

Приклад

status

Коротке повідомлення про успіх або помилку при виконанні запиту.

1 - запит виконано успішно,

0 - сталась помилка при виконанні запиту

INT

1 або 0

id

ІД платежу

STRING

"d13220b5-dd64-4175-b1b6-8644f3578067"

key

Ключ для підписання запиту

STRING

"EGyzbXkwM2VL9nJ8Cgw38gGWsSxqpR5z1obdJQXQtVL7.jc0bctif743775603664"


Крок 4: Перевірка статусу платежу

Після створення платежу

Тепер наш платіж знаходиться в одному з п'яти статусів. І нам потрібно з'ясувати в якому, бо від цього залежать наші подальші дії. Для початку виконаємо запит на /api/payments/ecom/show. 

Про метод "show"

До цього методу нам потрібно буде звертатись кожного разу після виконання запиту для будь якої активної дії: спроби зняти гроші, спроби зарахувати гроші та спроби повторити транзакцію.

Написання запиту

{ "params": { "sessionId":"b38cecd3-28db-41f4-9935-9f411ac7a5eb", "id": "a9cc5e84-64aa-44b0-b266-9c7298d68009" } }

Де:

Параметр

Опис

Тип

Приклад

Параметр

Опис

Тип

Приклад

sessionId

id сесії яку ми отримали після розшифровки підписаної відповіді запиту на створення сесії. Цей параметр взагалі треба передавати у всіх запитах

STRING

"b38cecd3-28db-41f4-9935-9f411ac7a5eb"

id

id платежу

STRING

"a9cc5e84-64aa-44b0-b266-9c7298d68009"



Підписання запиту

Підписуємо запит таким саме чином, як і запит на створення сесії. Тобто, за допомогою бібліотеки jwt та ключа який ми отримали у кабінеті алгоритмом HS256. І отримуємо token:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXJhbXMiOnsic2Vzc2lvbklkIjoiYjM4Y2VjZDMtMjhkYi00MWY0LTk5MzUtOWY0MTFhYzdhNWViIiwiaWQiOiI3ODZkNDE0Ni03M2NiLTQ1NGItOTMyMi01ZjNjYzMyYzMwOTAifSwiaWF0IjoxNTM0ODY1NjEyfQ.bg_9TYgktD9bMuDqoSWsPY5c__MnfnK69W83cycVP20
{ "status": 1, "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImE5Y2M1ZTg0LTY0YWEtNDRiMC1iMjY2LTljNzI5OGQ2ODAwOSIsInN0YXR1cyI6Ik5FRURTX0NPTkZJUk1BVElPTiIsImFtb3VudCI6MzAwMCwicGx1Z2luSWQiOjIsImNvbmZpcm1hdGlvbiI6eyJ0eXBlIjoiTE9PS1VQIiwiY29uZmlybWF0aW9uc0xlZnQiOjN9LCJpYXQiOjE1MzQ4NjYzMzJ9.uJkPdPtLpxAnXBBpJV7uqw26lRz_gu6hNjr_Os8deDU" } }

Розшифровка підписаної відповіді

Тепер ми можемо розшифрувати відповідь. Для цього треба застосувати функцію decode бібліотеки jwt, передати їй ваш секретний ключ, параметр алгоритму (HS256) та рядок який ви отримали у відповіді після запиту у параметрі "token". В результаті ви отримаєте:

У відповідь ми отримаємо статус платежу (для LOOKUP):

{ "id": "a9cc5e84-64aa-44b0-b266-9c7298d68009", "status": "NEEDS_CONFIRMATION", "amount": 3000, "pluginId": 2, "confirmation": { "type": "LOOKUP", "confirmationsLeft": 3 }, "iat": 1534866332 }

Або  отримаємо статус платежу (для 3Ds):

{ "status": 1, "data": { "id": "a9cc5e84-64aa-44b0-b266-9c7298d68009", "status": "NEEDS_CONFIRMATION", "amount": 100, "pluginId": 1, "key": "C3ZwPKsoCkDbo6ryHDsicCtJBpwBa72ruQ7JKeTDgKRw.jp8j8up5583950198087", "confirmation": { "type": "3DS", "url": "https://3ds.ukrsotsbank.com:443/way4acs/pa?id=XAVajg551ggIMco69PYLaQ", "form": { "PaReq": "eJxVUm1v4jAM/sy/qPYDyEtpKSiLxK3aDena6zam0+7LqSoedIxQkvbG+PWzU5hYpKq2nyd2/NhqsbYA6SNUnQWtMnCuXEFQL6+vitkD7P+JaBQm0WgcjkIRX+mB8mE9GKj/YF29M1oM+VAqdnYRaUqjo2icCD4WMuZxJMNEMYoimIGt1qVp0R6ostr/mOc6kvEkFoqdXEK2YOep5v2R/Q8ZfZgIptyCXoBrg3PGYFG6X7XZBIp5kFjVrjOt/dAJHyl2dgjo7Jtet20zZUzIMbbAh2Ia4mFZMWcP4JqdcVDYXYWS1GY1fHWNYnQLL7OLJlTRke36eod6qbPFE8+OK5Gn1TFPs0P+OnvPUv9dK0YMYi7LFrTkIhGSh4FIpqGcCnykj3tttvRckpejMr1D8YbqzU4gYZcB33NnLZjqQ08SRL88guCAbQHycGBfNjV00YS6uTvNpmpR69nz4Ub8Ld5/vzxNnv+83f7Mbc3v95v7zd2RJuZJp9w1iismPPHJa6+0YpQOC/i1IeX8hqH1bfM+AdjVwPU=" } }, "redirect": { "url": "https://api.demo.uapay.ua/api/payments/ecom/confirm", "params": { "id": "2128d32f-0358-4a69-8566-9415a9ba02e1" }, "directAcs": null } }, "iat": 1534866332 }

Де:

Параметр

Опис

Тип

Приклад

Параметр

Опис

Тип

Приклад

status

Статус виконання операції перегляду статусу платежу. 

1 - запит виконано успішно,

0 - сталась помилка при виконанні запиту

INT

1 або 0

Тіло відповіді

Id

id платежу в системі UAPAY

STRING

"a9cc5e84-64aa-44b0-b266-9c7298d68009"

status

Статус платежу. Може набувати одного з таких значень:

"NEW" - нове замовлення, по ньому не було здійснено оплату

"FINISHED" - завершене замовлення. Наш улюблений статус. Гроші було знято та зараховано на рахунки UAPAY, скоро ви отримаєте гроші на розрахунковий рахунок, який було вказано в налаштуваннях магазину

"REJECTED" - платіж по замовленню не був здійснений по технічним причинам. Наприклад, платіж був відмінений банком через те, що картку платника було вкрадено. Або, можливо, злі тхори перегризли всі дроти в дата-центрах Amazon і ми впродовж довгого часу не змогли провести платіж, через що банк відмінив транзакцію.

"NEEDS_CONFIRMATION" - платіж потребує підтвердження

STRING

"NEEDS_CONFIRMATION"

amount

Сума переказу в копійках

INT

3000

Інформація про підтвердження переказу (зараз ми зрозуміємо як цей переказ підтвердити для банку)

confirmation.url

Адреса для переадресації користувача на сторінку підтвердження його банку. Саме сюди ми будемо відправляти користувача для підтвердження переказу.

STRING

"https://acs.privatbank.ua/pPaReqMC.jsp"

UAPAY - національний платіжний сервіс
pay@uapay.ua