Інтеграція з вашим сервісом

Створити заявку
Використовуйте метод public/exchanger/order/create
Назва | Опис | Тип |
routeId | id напряму | ObjectID |
partner | код партнера | STRING |
amount | сума | FLOAT |
fromValues[0][key] | ключ поля | ObjectID |
fromValues[0][value] | значення для поля | STRING |
toValues[0][key] | ключ поля | STRING |
toValues[0][value] | значення для поля | STRING |
routeValues[0][key] | ключ поля | ObjectID |
routeValues[0][value] | значення для поля | STRING |
lang | мова | STRING |
agreement | договір | BOOLEAN |
hideOutData | приховати реквізити | BOOLEAN |
clientCallbackUrl | зворотний виклик, коли програма буде завершена, клієнт побачить кнопку для повернення на сайт, і клієнт буде перенаправлений на цей URL. ?status=success або на ?status=error | STRING |
ipnUrl | URL-адреса сповіщення про миттєвий платеж (буде викликаний при зміні статусу ордера) | STRING |
ipnSecret | рядок для створення безпечного хешу в ipn url | STRING |
Документацію до системи авторизації можна знайти в особистому кабінеті. Докладніше про роботу з методи та додаткові дані можна знайти на API docs page
IPN (Сповіщення про зміну статусу платіжного запиту)
Щоб отримати повідомлення про зміну статусу заявки під час її створення, необхідно надіслати додаткові параметри:
clientCallbackUrl
- зворотний виклик, коли програма буде завершена, клієнт побачить кнопку для повернення на сайт, і клієнт буде перенаправлений на цей URL.hideOutData
- приховати дані одержувачаipnUrl
- Посилання HTTP/HTTPS для сповіщення вашого сервера.ipnSecret
- Випадковий рядок для створення підпису запиту (для підтримки цілісності запиту)
- Запит буде відправлений методом POST
- IPN буде відправлено один раз
- Доставка IPN не гарантується (якщо сервер не відповів на запит, він не буде надіслан повторно)
Зразок IPN
- POST
- ['Content-Type'] = 'application/x-www-form-urlencoded'
orderUID
:Number() - заявка uidorderId
:String(ObjectId) -заявка idnewStatus
:String() - заявка поточного статусуinAmount
:String(number) - order in sumoutAmount
:String(number) - order out sumxml_from
:String() - заявка uidxml_to
:String() - заявка uidtimestamp
:Number() - unix час і ipn сповіщенняtoValues
:Array([{key,name,value}]) - реквізити заявки
new
- нова заявкаwaitPayment
- очікуємо платіж від користувачаerrorPayment
- помилка платежу користувача (помилка відправки продавця)inProgress
- у процесі (очікується обробка адміном чи оплата заявки)inProgressPayout
- у черзі на оплату (платіж прийнято успішно) (якщо налаштовано автоматичний платіж у валюті, він буде ініціалізований)errorPayout
- помилка платежу (помилка сталася під час оплати)hold
- заявка заморожена (проблеми із додатком)done
- заявка успішно виплаченаreturned
- заявка була оплачена, але не всі умови обміну та способи повернення відправника були виконаніdeleted
- заявка видалена (скасована)
Верифікація контрольної суми запиту (IPN)
sha256(orderId:newStatus:inAmount:outAmount:xml_from:xml_to:timestamp:ipnSecret)
const stringForHash = orderId+":"+newStatus+":"+inAmount+":"+outAmount+":"+xml_from+":"+xml_to+":"+timestamp+":"+ipnSecret;
// example string for hash 5d8e6002b80b7b4cd75a6424:inProgress:2:317.42:ETH:WMZ:1571328406072:SECRET123
const hash = crypto.createHash('sha256').update(stringForHash).digest('hex')
// example hash af3acf947e6f0e0f2c267e300b8582e504dba12d1f2d058652b7414163c09f48
Контроль платежів
- Якщо вам необхідно контролювати статус запитів, створювати їх за допомогою авторизації, всі запити будуть відображені у вашому особистому кабінеті;
- Ви можете зберегти UID запиту та секрет і вручну перейти до запиту, вказавши ці дані в адресному рядку
Оплата
-
Ви можете використовувати / payment / для відображення сторінки оплати
// schema
https://www.streamx.cash/user-lang/payment/order-uid/order-secret
// example result
https://www.streamx.cash/en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cb - Також ви можете просто дати посилання на біржу так, як її бачать усі клієнти за тією ж схемою, що й у першому варіанті, крім /payment/, слід замінити на /order/
- У методі є параметри, які дозволяють відображати платіжні дані або форму оплати на вашому сайті, яку ви можете використати. ВАЖЛИВО: якщо використовується метод передоплати, вам необхідно оновити статус замовлення з waitPayment до inProgress після оплати.