Integracja z Twoją usługą
merchant
Zrób podanie
użyj metody public/exchanger/order/create
Nazwa | Opis | Typ |
routeId | id kierunki | 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 | STRING |
agreement | umowa | BOOLEAN |
hideOutData | Ukryj rekwizyt | BOOLEAN |
clientCallbackUrl | oddzwonienie po zakończeniu aplikacji klient zobaczy przycisk powrotu na stronę i zostanie przekierowany na ten adres URL ?status=success lub w ?status=error | STRING |
ipnUrl | Adres URL natychmiastowego powiadomienia o płatności (zostanie wywołany, gdy zmieni się status zamówienia) | STRING |
ipnSecret | ciąg do generowania bezpiecznego hasha w adresie IPN | STRING |
Dokumentację systemu autoryzacji znajdziesz na swoim koncie osobistym. Więcej szczegółów na temat pracy c metodami oraz dodatkowe dane można znaleźć na
IPN (Powiadomienie o zmianie statusu wniosku o płatność)
Aby otrzymać powiadomienie o zmianie statusu aplikacji po jej utworzeniu, należy przesłać dodatkowe parametry:
clientCallbackUrl
- oddzwonienie po zakończeniu aplikacji klient zobaczy przycisk powrotu na stronę i zostanie przekierowany na ten adres URLhideOutData
- ukryj dane odbiorcyipnUrl
- Link HTTP/HTTPS do powiadamiania serwera.ipnSecret
- Losowy ciąg do wygenerowania podpisu żądania (w celu zachowania integralności żądania)
- Żądanie zostanie wysłane metodą POST.
- IPN zostanie wysłany 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() - podanie uidorderId
:String(ObjectId) -podanie idnewStatus
:String() - podanie aktualny staninAmount
:String(number) - order in sumoutAmount
:String(number) - order out sumxml_from
:String() - podanie uidxml_to
:String() - podanie uidtimestamp
:Number() - Powiadomienia o czasie uniksowym i ipntoValues
:Array([{key,name,value}]) - rekwizyty i podania
Spis statusów
new
- Nowe podaniewaitPayment
- oczekiwanie na płatność od użytkownikaerrorPayment
- niestandardowy błąd płatności (błąd wysyłania sprzedawcy)inProgress
- w trakcie (oczekuje na przetworzenie przez administratora lub opłacenie wniosku)inProgressPayout
- w kolejce do płatności (płatność przyjęta pomyślnie) (jeśli skonfigurowana jest płatność automatyczna w walucie zostanie ona zainicjowana)errorPayout
- błąd płatności (wystąpił błąd podczas płatności)hold
- aplikacja jest zamrożona (problemy z aplikacją)done
- aplikacja pomyślnie opłaconareturned
- wniosek został opłacony, ale nie wszystkie warunki wymiany i metody zwrotu nadawcy zostały spełnionedeleted
- aplikacja usunięta (anulowana)
Poproś o weryfikację sumy kontrolnej (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 wniosków, utwórz je za pomocą autoryzacji, wtedy wszystkie wnioski zostaną odzwierciedlone na Twoim koncie osobistym;
- Możesz zapisać UID żądania i klucz tajny oraz ręcznie przejść do żądania, wprowadzając te dane w pasku adresu
Zapłata
-
Możesz użyć /payment/, aby wyświetlić stronę płatności
// schema
https://www.smartexpay.com//user-lang/payment/order-uid/order-secret
// example result
https://www.smartexpay.com//en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cb - Możesz też po prostu podać link do giełdy, tak jak widzi go wszyscy klienci w taki sam sposób, jak w pierwszej opcji, z wyjątkiem /payment/ należy zastąpić /order/
- Metoda ma parametry, które pozwalają wyświetlić szczegóły płatności lub formę płatności na Twojej stronie, z której możesz skorzystać. WAŻNE: Jeśli korzystasz z metody przedpłaconej, musisz zaktualizować status zamówienia z waitPayment na inProgress po dokonaniu płatności