Интеграция с вашата услуга

Търговец

Създаване на заявка

Използвайте метод 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 (Уведомление за промяна на статуса на платежната заявка)

UclientCallbackUrl - {{ $t('page.merchants.clientCallbackUrl') }
UhideOutData - Скриване на данните на получателя
UipnUrl - HTTP / HTTPS линк за уведомяване на вашия сървър.
UipnSecret - Произволен низ за създаване на подпис на заявката (за поддържане на целостта на заявката)

Заявката ще бъде изпратена чрез 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

Контрол на плащанията

  1. Ако трябва да контролирате статуса на заявките и да ги създавате чрез авторизация, всички заявки ще бъдат отразени в личния ви кабинет;
  2. Можете да запазите UID на заявката и секретния код и ръчно да я достъпите, като въведете тези данни в адресната лента

Плащане

  1. Можете да използвате /payment/ за показване на страницата за плащане

    // schema
    https://nimlab.eu/user-lang/payment/order-uid/order-secret
    // example result
    https://nimlab.eu/en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cb
  2. Можете също така да предоставите линк към обмена по същата схема, както виждат всички клиенти, като замените /payment/ с /order/
  3. Методът съдържа параметри, които ви позволяват да покажете платежните данни или формата за плащане на вашия сайт. ВАЖНО: ако се използва метод с предплащане, трябва да актуализирате статуса на поръчката от waitPayment на inProgress след плащането.