Створення платежу
Створення платежу
URL
https://payparts2.privatbank.ua/ipp/v2/payment/create
Тип запиту
POST
Headers
Назва | Значення |
Accept: | application/json; |
Accept-Encoding: | UTF-8; |
Content-Type: | application/json; charset=UTF-8; |
Body запиту
Опис полів
Поле | Обов'язкове | Формат | Опис |
storeId | так | String,maxSize=20 | Ідентифікатор магазину |
orderId | так | String,maxSize=50 | Унікальний номер платежу |
amount | так | Double, Min=300, Max=300 000 | Остаточна сума покупки |
partsCount | так | Integer,min=1, max=25 | Кількість частин, на які ділиться сума транзакції |
merchantType | так | String | Тип кредиту, можливі значення: II – Миттєва розстрочка; PP – Оплата частинами. |
scheme | ні | Integer | Ідентифікатор схеми. Виділяється Банком. За промовчанням не передається. У розрахунку сигнатури немає. |
products | так | Array,min=1 | Список продуктів, кожен продукт містить поля: name - Найменування товару; price - Ціна за одиниця товару; count - Кількість товарів цього виду. |
name | так | String,maxSize=128 | Найменування товару |
count | так | Integer,minSize=1 | Кількість товару цього виду |
price | так | Double,Min=0.01 | Ціна за одиниця товару |
recipientId | ні | String | Ідентифікатор одержувача за замовчуванням береться основний одержувач. Встановлення основного отримувача відбувається у профілі магазину. |
responseUrl | ні | String | URL, на який Банк надішле результат угоди |
redirectUrl | ні | String | URL, на який Банк зробить редирект клієнта |
signature | так | String | Унікальний підпис запиту. Результат функції SHA1 (опис нижче). |
sendPhone | ні | String | формат із "+". Телефон для відправки клієнту пуш у приват24 для підтвердження платежу. без переходу на чек-аут. Телефон клієнта має бути фінансовим у банку, інакше буде помилка |
Робота з параметром "sendPhone"
якщо параметр переданий, то вважаємо, що клієнту після створення токена треба відправити пуш в п24. У відповідь додається параметр sendPhone, туди передається результат надсилання SUCCESS або FAIL. Вихідний параметр додається, лише якщо його передали на вхід
можливі помилки якщо за тел клієнт не зареєстрований у банку - client not found якщо телефон у неправильному форматі - invalid phone якщо тел порожній - sendPhone cannot be empty помилка створення відправки клієнту пуша в п24- try again after 15 min
якщо у клієнта нема ліміту для оплати частинами - client has not credit limit
відправка пуша в п24 не блокуюча операція, якщо пуш не відправився, то все одно повертаємо токен у відповіді для проведення платежу звичайним способом. додаємо "sendPhone" : "FAIL" та помилку в message
Рекомендуємо використовувати банери в роботі з параметром SendPhone
Розрахунок сигнатури для запиту
SIGNATURE - підпис запиту, обов'язковий параметр розраховується за формулою: encodeBase64 ( SHA1 ( password + storeId + orderId + withoutFloatingPoint(amount) + partsCount + merchantType + responseUrl + redirectUrl + products_string + password )), де:
encodeBase64 () - Функція зашифровує рядок у форматі BASE64;
SHA1 () - Стандартна хеш-функція SHA-1 повинна повертати бінарні дані;
withoutFloatingPoint () - Функція повертає число без плаваючої точки;
"+" - Конкатенація текстового рядка.
Параметр | Значення |
password | Пароль вашого магазину |
storeId | Ідентифікатор магазину |
orderId | Унікальний номер платежу |
amount | Остаточна сума покупки, без плаваючої точки (кома). Приклад: "purchaseAmount": 301.00, то в сигнатуру необхідно передати 30100 |
partsCount | Кількість частин, на які ділиться сума транзакції |
merchantType | Тип кредиту |
responseUrl | URL, на який Банк надішле результат угоди |
redirectUrl | URL, на який Банк зробить редирект клієнта |
products_string | (product.name(A) + product.count(A) + withoutFloatingPoint(product.price(A)) + product.name(B) + product.count(B) + withoutFloatingPoint(product.price(B)) + ... ) |
password | Пароль вашого магазину |
Успішна відповідь
Опис полів
Параметр | Значення |
password | Пароль вашого магазину |
state | Результат відпрацювання запиту |
storeId | Ідентифікатор магазину |
orderId | Унікальний номер платежу |
message | У разі помилки містить повідомлення помилки |
password | Пароль вашого магазину |
Розрахунок сигнатури для відповіді
SIGNATURE = encodeBase64 ( SHA1 ( password
+ state
+ storeId
+ orderId
+ token
+ password
))
encodeBase64 () - Функція зашифровує рядок у форматі BASE64;
SHA1 () - Стандартна хеш-функція SHA-1 повинна повертати бінарні дані;
"+" - Конкатенація текстового рядка.
Відповідь з помилкою
Розрахунок сигнатури для відповіді
SIGNATURE = encodeBase64 ( SHA1 ( password
+ state
+ storeId
+ orderId
+ message
+ password
))
encodeBase64 () - Функція зашифровує рядок у форматі BASE64;
SHA1 () - Стандартна хеш-функція SHA-1 повинна повертати бінарні дані;
withoutFloatingPoint () - Функція повертає число без плаваючої точки;
"+" - Конкатенація текстового рядка.
Відповідь з помилкою з параметром sendPhone
Розрахунок сигнатури для відповіді
SIGNATURE = encodeBase64 ( SHA1 ( password + state + storeId + orderId + message + token + password ))
Last updated