Інтеграція з вашим сервісом
Мерчант
Створити заявку
Використовуйте метод 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 |
Документацію до системи авторизації можна знайти в особистому кабінеті. Докладніше про роботу з методи та додаткові дані можна знайти на
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.masxcrypto.com/user-lang/payment/order-uid/order-secret
// example result
https://www.masxcrypto.com/en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cb - Також ви можете просто дати посилання на біржу так, як її бачать усі клієнти за тією ж схемою, що й у першому варіанті, крім /payment/, слід замінити на /order/
- У методі є параметри, які дозволяють відображати платіжні дані або форму оплати на вашому сайті, яку ви можете використати. ВАЖЛИВО: якщо використовується метод передоплати, вам необхідно оновити статус замовлення з waitPayment до inProgress після оплати.