Integracja z Twoją usługą
Sprzedawca
Utwórz zamówienie
Użyj metody public/exchanger/order/create
Nazwa | Opis | Typ |
routeId | id kierunku | ObjectID |
partner | kod partnera | STRING |
amount | kwota | FLOAT |
fromValues[0][key] | klucz pola | ObjectID |
fromValues[0][value] | wartość pola | STRING |
toValues[0][key] | klucz pola | STRING |
toValues[0][value] | wartość pola | STRING |
routeValues[0][key] | klucz pola | ObjectID |
routeValues[0][value] | wartość pola | STRING |
lang | język (ukr, ang) | STRING |
agreement | umowa | BOOLEAN |
hideOutData | ukryj dane konta | BOOLEAN |
clientCallbackUrl | adres zwrotny, kiedy aplikacja zostanie zakończona, klient zobaczy przycisk powrotu do strony i zostanie przekierowany na ten URL ?status=success lub na ?status=error | STRING |
ipnUrl | URL powiadomień o natychmiastowych płatnościach (będzie wywoływany przy zmianie statusu zamówienia) | STRING |
ipnSecret | ciąg do tworzenia bezpiecznego hasha w IPN URL | STRING |
Dokumentację systemu autoryzacji można znaleźć w panelu użytkownika. Więcej informacji o metodach i dodatkowe dane można znaleźć na
IPN (Powiadomienie o zmianie statusu żądania płatności)
UclientCallbackUrl - {{ $t('page.merchants.clientCallbackUrl') }
UhideOutData - ukryj dane odbiorcy
UipnUrl - Adres HTTP / HTTPS do powiadamiania Twojego serwera.
UipnSecret - Losowy ciąg do tworzenia sygnatury żądania (w celu zapewnienia integralności żądania)
Żądanie zostanie wysłane metodą POST
IPN zostanie wysłane tylko raz
Dostarczenie IPN nie jest gwarantowane (jeśli serwer nie odpowie na żądanie, nie zostanie ono ponownie wysłane)
Przykład IPN
POST
['Content-Type'] = 'application/x-www-form-urlencoded'
orderUID :Number() - zamówienie uid
orderId :String(ObjectId) - zamówienie id
newStatus :String() - zamówienie bieżący status
inAmount :String(number) - order in sum
outAmount :String(number) - order out sum
xml_from :String() - zamówienie uid
xml_to :String() - zamówienie uid
timestamp :Number() - czas unix i powiadomienie IPN
toValues :Array([{key,name,value}]) - dane zamówienia
Lista statusów
new - nowe zamówienie
waitPayment - oczekiwanie na płatność od użytkownika
errorPayment - błąd płatności użytkownika (błąd sprzedawcy)
inProgress - w toku (oczekuje na przetworzenie przez administratora lub płatność)
inProgressPayout - w kolejce do płatności (płatność została pomyślnie przyjęta) (jeśli automatyczna płatność w walucie jest ustawiona, zostanie zainicjowana)
errorPayout - błąd płatności (wystąpił błąd przy dokonywaniu płatności)
hold - zamówienie wstrzymane (problemy z aplikacją)
done - zamówienie zostało pomyślnie zrealizowane
returned - zamówienie zostało opłacone, ale nie wszystkie warunki wymiany i metody zwrotu zostały spełnione
deleted - zamówienie usunięte (anulowane)
Weryfikacja sumy kontrolnej żądania (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
Kontrola płatności
- Jeśli chcesz kontrolować status żądań i tworzyć je przy użyciu autoryzacji, wszystkie żądania będą odzwierciedlone w Twoim panelu użytkownika;
- Możesz zapisać UID żądania i sekret, a następnie ręcznie przejść do żądania, podając te dane w pasku adresu
Płatność
-
Możesz użyć /payment/ do wyświetlenia strony płatności
// schema
https://nimlab.eu/user-lang/payment/order-uid/order-secret
// example result
https://nimlab.eu/en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cb - Możesz również po prostu podać link do giełdy tak, jak widzą go wszyscy klienci według tego samego schematu, z tą różnicą, że /payment/ należy zastąpić na /order/
- W metodzie są parametry, które pozwalają wyświetlać dane płatności lub formularz płatności na Twojej stronie, które możesz wykorzystać. WAŻNE: jeśli używasz metody z przedpłatą, musisz zaktualizować status zamówienia z waitPayment na inProgress po dokonaniu płatności.