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

  1. Se hai bisogno di controllare lo stato delle richieste, creandole tramite autorizzazione, tutte le richieste saranno visualizzate nel tuo pannello personale;
  2. Puoi salvare l'UID della richiesta e il segreto e accedere manualmente alla richiesta, inserendo questi dati nella barra degli indirizzi

Pagamento

  1. 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
  2. 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/
  3. 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.