Proceso de pago con webform

Proceso de pago con webform

Consideraciones

Para utilizar el formulario de pago de Greenpay, se debe considerar los siguiente:
  1. El formulario está disponible en:
    1. Sandbox: https://sandbox-checkoutform.greenpay.me/
    2. Producción: https://checkout-form.greenpay.me/
  2. Tener una session token de una orden the pago que no haya excedido los 30 minutos establecidos para vencimiento. Además, la orden debió se creada con el parámetro callback. Para ver cómo crear una orden de pago  y agregar el parámetro  callback visite este enlace.
  3. El formulario de pago de Greenpay solo esta disponible para aplicaciones web.
  4. Recomendado: Implementar un webhook para recibir las respuestas en un backend, para esto puede revisar el articulo Respuestas de pago en webhook.

Pasos para uso del formulario

1. Redireccionar al formulario de tokenizacion

Con la respuesta (session, token) obtenida en la orden de pago, se debe redireccionar desde el sitio del comercio hacia el formulario de Greenpay, de la siguiente manera:
  1. Generar la orden de tokenización (session y token) en sandbox o producción, según el ambiente.
  2. Construir la url, así
    1. Sandbox: http://sandbox-checkoutform.greenpay.me/{{session}}
    2. Producción: https://checkout-form.greenpay.me/{{session}}
A continuación, se muestra un ejemplo en javascript de cómo hacer el redireccionamiento.


const express = require("express");
const app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.get("/order", async function (req, res) {
try {
const security = await postOrder(order);
//console.log(security);
} catch (err) {
res.send(err);
}
});


Al hacer el redireccionamiento, se les presentará un formulario para que el usuario ingrese los datos de la tarjeta a la cual se le aplicará el cargo.



2. Capturar la repuesta del formulario

Cuando se envía los datos y se obtiene la respuesta, el formulario la envía al URL callback de la orden de pago. La respuesta es un JSON codificado en BASE64 (callbackURL/BASE64), como se muestra en la siguiente imagen.



Se requiere que exista una función en el destino (callback) que capture la respuesta en BASE 64 y lo de-codifique. A continuación, se muestra un ejemplo de cómo obtener la respuesta.


app.get("/callback/:data", async function (req, res) {
try {
//get the response in base64
const data = req.params.data;

//decode the response in base64
var responsejson = Buffer.from(data, 'base64').toString();
console.log(responsejson);
res.send(JSON.parse(responsejson));
} catch (err) {
res.send(err);
}
});


A continuación, se muestra un ejemplo de la respuesta JSON.
  1. {
  2.     "statusCode": 200,
  3.     "body": {
  4.         "status": 200,
  5.         "orderId": "xwr-123455",
  6.         "authorization": "533793",
  7.         "last4": "7777",
  8.         "brand": "Visa",
  9.         "result": {
  10.             "time_local_tran": "165407",
  11.             "systems_trace_audit_number": "000283",
  12.             "success": true,
  13.             "retrieval_ref_num": "701016540713",
  14.             "resp_code": "00",
  15.             "reserved_private4": null,
  16.             "proc_code": "000000",
  17.             "network_international_id": "0003",
  18.             "mti": "0210",
  19.             "merchant_id": 485,
  20.             "date_local_tran": "0110",
  21.             "card_acceptor_terminal_id": "00112478",
  22.             "authorization_id_resp": "533793"
  23.         },
  24.         "errors": [],
  25.         "callback": "http://yourcallback.url/getcheckoutform/response%22,
  26.         "_signature": "2e9d23b194905314561b8c750f7a7...beab114d717ec6"
  27.     }
  28. }

3. Obtener las respuestas en un webhook.

Como se menciona en la sección de consideraciones del widget, es recomendado tener un webhook habilitado. Por favor revisar el artículo Recibir la respuesta en el webhook
El webhook permite obtener la respuesta en un backend ante un eventual timeout o desconexión del usuario a internet, entre otros.

    • Related Articles

    • Proceso de pago con Widget

      Consideraciones Para utilizar el widget de pago de Greenpay, se debe considerar los siguiente: Se debe contar con una cuenta de sandbox o producción, para obtener una cuenta de sandbox visite Sobre cuenta de pruebas o sandbox. El widget de pago, es ...
    • Crear orden de pago

      Consideraciones Una orden de pago se crea para indicar al API de pago que se efectuará una transacción por el motivo de los datos indicados en la orden. Para esto se debe tener las siguientes consideraciones: Utilizar el servicio en los endpoints: En ...
    • Invocar API de pago

      Consideraciones Para invocar el api de pagos se debe considerar lo siguiente Utilizar el servicio en los endpoints:  Sandbox: https://sandbox-checkout.greenpay.me/kount Producción: https://checkout.greenpay.me/kount Tener una session y token de una ...
    • Proceso de tokenización con formulario

      Consideraciones Para utilizar el formulario de tokenización de tarjetas se debe considerar los siguiente: El formulario está disponible en: Sandbox: http://sandbox-tokenizeform.greenpay.me/ Producción: https://tokenizeform.greenpay.me/ Tener ...
    • Proceso de tokenización

      Consideraciones Para utilizar el servicio de tokenización se debe tomar en cuenta los siguiente: Utilizar el servicio en los endpoints:  Sandbox: https://sandbox-checkout.greenpay.me/tokenize Producción: https://checkout.greenpay.me/tokenize Tener ...