 
 Создать заявку
Используйте метод 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 | cоглашение | BOOLEAN | 
| hideOutData | cкрыть реквизиты | 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() - заявка uid
- orderId:String(ObjectId) -заявка id
- newStatus:String() - заявка текущего статуса
- inAmount:String(number) - order in sum
- outAmount:String(number) - order out sum
- xml_from:String() - заявка uid
- xml_to:String() - заявка uid
- timestamp: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
 protocol://domain/user-lang/payment/order-uid/order-secret
 // example result
 https://www.domain.com/en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cb
- Также вы можете просто отбразить ссылку на бирже так, как ее видят все клиенты по той же схеме, что и в первом варианте, кроме /payment/ следует заменить на /order/
- В методе есть параметры, которые позволяют отображать платежные данные или форму оплаты на вашем сайте, которую вы можете использовать. ВАЖНО: если используется метод с предоплатой, вам необходимо обновить статус заказа с waitPayment до inProgress после оплаты.
