Integración con su servidor
Comerciante
Crear una solicitud
Utilice el método public/exchanger/order/create
Nombre | Descripción | Tipo |
routeId | id de la dirección | ObjectID |
partner | código del socio | STRING |
amount | importe | FLOAT |
fromValues[0][key] | clave del campo | ObjectID |
fromValues[0][value] | valor del campo | STRING |
toValues[0][key] | clave del campo | STRING |
toValues[0][value] | valor del campo | STRING |
routeValues[0][key] | clave del campo | ObjectID |
routeValues[0][value] | valor del campo | STRING |
lang | idioma (ru, ing) | STRING |
agreement | acuerdo | BOOLEAN |
hideOutData | ocultar los datos bancarios | BOOLEAN |
clientCallbackUrl | llamada de vuelta, una vez finalizada la aplicación, el cliente verá el botón de volver al sitio web y será redirigido a este url ?status=success o para ?status=error | STRING |
ipnUrl | Dirección URL de la notificación sobre el pago instantáneo (será llamado cuando se cambie el estado de la solicitud) | STRING |
ipnSecret | línea para crear un hash seguro en ipn url | STRING |
Puede encontrar la documentación del sistema de autorización en su perfil. Puede encontrar más información sobre el trabajo con métodos y datos extra en
IPN (Notificación sobre el cambio del estado de la solicitud de pago)
Para recibir la notificación sobre el cambio del estado de la solicitud, a la hora de crearla, tiene que enviar unos parámetros adicionales:
clientCallbackUrl
- llamada de vuelta, una vez finalizada la aplicación, el cliente verá el botón de volver al sitio web y será redirigido a este urlhideOutData
- ocultar los datos del receptoripnUrl
- Enlace HTTP / HTTPS para notificar su servidor.ipnSecret
- Línea aleatoria para crear la firma de la solicitud (para mantener la integridad de la solicitud)
- La solicitud será enviada por el método POST
- IPN será enviado una vez
- No se garantiza el suministro de IPN (si el servidor no ha respondido a la solicitud, no será enviada de nuevo)
Ejemplo de IPN
- POST
- ['Content-Type'] = 'application/x-www-form-urlencoded'
orderUID
:Number() - solicitud uidorderId
:String(ObjectId) -solicitud idnewStatus
:String() - solicitud estado actualinAmount
:String(number) - order in sumoutAmount
:String(number) - order out sumxml_from
:String() - solicitud uidxml_to
:String() - solicitud uidtimestamp
:Number() - tiempo de unix y notificaciones de ipntoValues
:Array([{key,name,value}]) - datos bancarios de la solicitud
Lista de estados
new
- solicitud nuevawaitPayment
- estamos esperando el pago del usuarioerrorPayment
- error del pago del usuario (error de envío del vendedor)inProgress
- en proceso (se espera el procesamiento por el administrador o el pago de la solicitud)inProgressPayout
- en cola para pagar (pago aceptado correctamente) (si está configurado el pago automático en moneda extranjera, será inicializadoerrorPayout
- error de pago (error producido a la hora de pagar)hold
- solicitud congelada (problemas con la aplicación)done
- solicitud pagada correctamentereturned
- la solicitud fue pagada, pero no todas las condiciones del cambio y métodos de devolución del remitente fueron cumplidosdeleted
- solicitud eliminada (cancelada)
Verificación del importe del control de la solicitud (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
Control de pagos
- Si necesita controlar el estado de solicitudes, crearlas a través de la autorización, entonces todas las solicitudes serán reflejadas en su cuenta;
- Puede guardar UID de la solicitud y secreto y manualmente acceder a la solicitud, indicando estos datos en la barra de direcciones
Pago
-
Puede utilizar / payment / para visualizar la página de pagos
// schema
https://www.smartexpay.com//user-lang/payment/order-uid/order-secret
// example result
https://www.smartexpay.com//en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cb - También puede simplemente dar el enlace al mercado de intercambio de la forma en que la ven sus clientes según el mismo esquema de la primera opción, a excepción de que /payment/ hace falta cambiarlo por /order/
- En el método existen unos parámetros que permiten visualizar los datos de pago o la forma de pago en su sitio web, que puede utilizar. IMPORTANTE: si se utiliza el método del pago anticipado, tiene que actualizar el estado del pedido con waitPayment hasta inProgress después del pago.