Integración Nequi SDK.
El integración permite una integración optima y la mejor experiencia de usuario. Con este tipo de integración, su página podrá invocar un servicio a través de JS para el procesamientoa través de la plataforma de monedero virtual Nequi permitiendo que usted cree la experiencia de usuario completa. Con este método, mantendrá siempre al usuario dentro de su sitio y controlara todas las respuestas en pantalla.
Prerrequisitos:
- Obtener las llaves de conexión de parte de Paguelofacil CCLW, Id, Nombre Legal y Nombre comercial registrados en la plataforma.
- TLS ó su antecesor SSL son protocolos criptográficos que proporcionan comunicaciones seguras por una red.
URL de Conexión:
- Servidor de Producción: https://secure.paguelofacil.com/
- Servidor de Pruebas: https://sandbox.paguelofacil.com/
1. En el html de tu web
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Checkout</title> <!-- AGREGA LOS SCRIPT DE TU SDK--> </head> <body> <div id="container-form"> </div> <div id="dataR"></div> <script> /*COLOCA A AQUI EL CÓDIGO PARA CONFIGURAR TU SDK*/ </script> </body> </html>
2. Agrega .js para agregar los compones del SDK.
<head > ... <script src="http://dev.paguelofacil.com/HostedFields/vendor/scripts/NEQ/PFScript.js"></script> <script src="http://dev.paguelofacil.com/HostedFields/vendor/qr-code/qrcode.js"></script> ... <head >
3. Configura tu SDK de nequi.
<script> //Pasa la variable true para procesar ennuestra platafirma de pruebas pfNequi.useAsSandbox(true); var mockTest = false; if (mockTest) { var forceTest = new pfNequi.hostedFields(); forceTest.dataMerchant.merchant = { id: 2, name: "Paguelo Facil S.A", //Nombre Comercial registrado en su cuenta. legalName: "Paguelo Facil S.A" //Nombre legal registrado en su cuenta. }; forceTest.dataMerchant.service = { id: 2, //Credencial Provisto por Paguelofacil code: "HFD" //Constante por el tipo de integración }; startMerchantForm(forceTest); } else { var api_key = "D59B98EA9B33773AFACFBE1D8FD9785631FC48F1A549E05F9BA4397F9D6166B22FB9D6182A1CF64B63154B2B9DD37C92"; var cclw = "15224BE0CBB8EAAC33B53850FF71EAE732253AFC4AB224938A491D0B3E9D3F7B" pfNequi.openService(api_key, cclw) .then(function (merchantSetup) { startMerchantForm(merchantSetup); }, function (error) { console.log(error); }); } function startMerchantForm(merchantSetup) { var paymentInfo = { amount: 1.0, description: "Test SDK Nequi", email: "alambrito@correo.com", phone: "+50767890540" }; var sdk = merchantSetup.init(merchantSetup.dataMerchant, paymentInfo); var useQR = true; if (useQR) { setTimeout(function () { sdk.generateQR().then(function (qr) { console.log("qr", qr); //Puede realizar su qr con una libreria propia o usar el JS (qrcode.js) y llamando a la funcion printQR sdk.printQR("container-form"); }, function (error) { console.log("error", error); }); }, 2000); } else { setTimeout(function () { sdk.sendPush("67890540").then(function (data) { console.log("pushSend", data); }, function (error) { console.log("error", error); }); }, 2000); } //Valida el pago recursivamente y registra la TX var validPayment = function () { sdk.validPayment().then(function (data) { if (data) { if (data.validated) { if (data.txSuccess) { //Debes obtener las variables de data.txSuccess y completar su pago console.log("Registro de Pago existoso", data.txSuccess); } else { //Informe el usuario del error e indique volver a intentarlo console.log("Pago Declinado", data.txError); } } else { console.log("Reenvia", data); setTimeout(function () { validPayment(); }, 1000); } } }, function (error) { console.log("error valid", error); }); }; setTimeout(function () { validPayment(); }, 5000); } </script>
4. Valida la respuesta de la transacción.
Para validar correctamente la transacción debes utilizar: if(data.txSuccess.status == 1) en tu script de implementación de nequi
5. Respuesta completa de transacción aprobada.
txtSuccess: { authStatus: "00" codOper: "SANDBOX_ND-ASX6ANK7ZUQ3" . //Valor De referencia de la transacción en nuestra plataforma date: "2018-12-07T16:57:19" email: "alambrito@correo.com" idtx: 496638 messageSys: "VER UNAVAILBLE" operationType: "AUTH_CAPTURE" requestPayAmount: 1 returnUrl: "https://sandbox.paguelofacil.com/PF/#/default-receipt/SANDBOX_ND-ASX6ANK7ZUQ3" status: 1 totalPay: "1.0" type: "NEQUI" }
6. Como debe verse tu integración de nequi.
- Debes decidir si utilizar ambas formas (push y QR), o solo unas de ellas dependiendo de si tu web recibe mayor visita por dispositivos móviles o web.
- Debes informar al usuario en cada proceso.
- Coloca una ayuda en caso de dudas.
Acá algunas imágenes ejemplo de método de pago implementado: