Створення платежу
URL
https://payparts2.privatbank.ua/ipp/v2/payment/hold
Тип запиту
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=2, 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 | Кількість частин, на які ділиться сума транзакції (>1) |
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 повинна повертати бінарні дані;
withoutFloatingPoint () - Функція повертає число без плаваючої точки ;
+ - Конкатенація текстового рядку
Відповідь з помилкою
Розрахунок сигнатури для відповіді
SIGNATURE = encodeBase64 ( SHA1 ( password
+ state
+ storeId
+ orderId
+ token
+ password
))
encodeBase64 () - Функція зашифровує рядок у форматі BASE64;
SHA1 () - Стандартна хеш-функція SHA-1 повинна повертати бінарні дані;
withoutFloatingPoint () - Функція повертає число без плаваючої точки ;
+ - Конкатенація текстового рядка.
Last updated