Integrazione con il tuo servizio
Merchant

Crea richiesta
Utilizza il metodo public/exchanger/order/create
Nome | Descrizione | Tipo |
routeId | id della direzione | ObjectID |
partner | codice del partner | STRING |
amount | importo | FLOAT |
fromValues[0][key] | chiave del campo | ObjectID |
fromValues[0][value] | valore per il campo | STRING |
toValues[0][key] | chiave del campo | STRING |
toValues[0][value] | valore per il campo | STRING |
routeValues[0][key] | chiave del campo | ObjectID |
routeValues[0][value] | valore per il campo | STRING |
lang | lingua (ukr, eng) | STRING |
agreement | accordo | BOOLEAN |
hideOutData | nascondi le coordinate | BOOLEAN |
clientCallbackUrl | callback, quando l'applicazione sarà terminata, il cliente vedrà un pulsante per tornare al sito, e sarà reindirizzato a questo URL ?status=success oppure su ?status=error | STRING |
ipnUrl | URL di notifica per pagamento istantaneo (verrà chiamato al cambio dello stato dell'ordine) | STRING |
ipnSecret | stringa per creare un hash sicuro nell'IPN URL | STRING |
La documentazione al sistema di autorizzazione è disponibile nel pannello personale. Maggiori dettagli sul funzionamento dei metodi e ulteriori informazioni sono disponibili su
IPN (Notifica sul cambiamento dello stato della richiesta di pagamento)
UclientCallbackUrl - {{ $t('page.merchants.clientCallbackUrl') }
UhideOutData - nascondi i dati del destinatario
UipnUrl - Link HTTP/HTTPS per notificare il tuo server.
UipnSecret - Stringa casuale per creare la firma della richiesta (per mantenere l'integrità della richiesta)
La richiesta sarà inviata con il metodo POST
L'IPN sarà inviato una sola volta
La consegna dell'IPN non è garantita (se il server non risponde alla richiesta, non verrà inviata nuovamente)
Esempio IPN
POST
['Content-Type'] = 'application/x-www-form-urlencoded'
orderUID :Number() - richiesta uid
orderId :String(ObjectId) - richiesta id
newStatus :String() - richiesta stato corrente
inAmount :String(number) - order in sum
outAmount :String(number) - order out sum
xml_from :String() - richiesta uid
xml_to :String() - richiesta uid
timestamp :Number() - tempo unix e notifica IPN
toValues :Array([{key,name,value}]) - coordinate della richiesta
Elenco degli stati
new - richiesta nuova
waitPayment - in attesa del pagamento da parte dell'utente
errorPayment - errore nel pagamento dell'utente (errore nell'invio dal venditore)
inProgress - in corso (in attesa dell'elaborazione da parte dell'amministratore o del pagamento della richiesta)
inProgressPayout - in coda per il pagamento (il pagamento è stato accettato con successo) (se è impostato un pagamento automatico nella valuta, verrà avviato)
errorPayout - errore di pagamento (si è verificato un errore durante il pagamento)
hold - richiesta congelata (problemi con l'applicazione)
done - richiesta pagata con successo
returned - la richiesta è stata pagata, ma non tutte le condizioni dello scambio e le modalità di rimborso del mittente sono state rispettate
deleted - richiesta eliminata (annullata)
Verifica del checksum della richiesta (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
Controllo dei pagamenti
- Se hai bisogno di controllare lo stato delle richieste, creandole tramite autorizzazione, tutte le richieste saranno visualizzate nel tuo pannello personale;
- Puoi salvare l'UID della richiesta e il segreto e accedere manualmente alla richiesta, inserendo questi dati nella barra degli indirizzi
Pagamento
-
Puoi utilizzare /payment/ per visualizzare la pagina di pagamento
// schema
https://nimlab.eu/user-lang/payment/order-uid/order-secret
// example result
https://nimlab.eu/en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cb - Puoi anche semplicemente fornire un link all'exchange come lo vedono tutti i clienti, seguendo lo stesso schema del primo caso, sostituendo /payment/ con /order/
- Il metodo dispone di parametri che consentono di visualizzare i dati del pagamento o il modulo di pagamento sul tuo sito, che puoi utilizzare. IMPORTANTE: se viene utilizzato un metodo con pagamento anticipato, è necessario aggiornare lo stato dell'ordine da waitPayment a inProgress dopo il pagamento.