Процессинг платежей API
Прием платежей через ваш обменник для других сайтов. Выступайте в роли процессинга платежей

Создать заявку
Используйте метод 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
- обратный вызов, когда приложение будет завершено, клиент увидит кнопку для возврата на сайт, и клиент будет перенаправлен на этот urlhideOutData
- скрыть данные получателя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
protocol://domain/user-lang/payment/order-uid/order-secret
// example result
https://www.domain.com/en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cb
Также вы можете просто отбразить ссылку на бирже так, как ее видят все клиенты по той же схеме, что и в первом варианте, кроме /payment/ следует заменить на /order/
В методе есть параметры, которые позволяют отображать платежные данные или форму оплаты на вашем сайте, которую вы можете использовать. ВАЖНО: если используется метод с предоплатой, вам необходимо обновить статус заказа с waitPayment до inProgress после оплаты.
Last updated
Was this helpful?