Створення платежу
Last updated
Last updated
https://payparts2.privatbank.ua/ipp/v2/payment/create
POST
якщо параметр переданий, то вважаємо, що клієнту після створення токена треба відправити пуш в п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 () - Функція повертає число без плаваючої точки;
"+" - Конкатенація текстового рядка.
Розрахунок сигнатури для відповіді
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 () - Функція повертає число без плаваючої точки;
"+" - Конкатенація текстового рядка.
SIGNATURE = encodeBase64 ( SHA1 ( password + state + storeId + orderId + message + token + password ))
Назва
Значення
Accept:
application/json;
Accept-Encoding:
UTF-8;
Content-Type:
application/json; charset=UTF-8;
Поле
Обов'язкове
Формат
Опис
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 для підтвердження платежу. без переходу на чек-аут. Телефон клієнта має бути фінансовим у банку, інакше буде помилка
Параметр
Значення
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
Пароль вашого магазину