El Botón de Yappy es una solución comercial que permite realizar pagos en línea de manera rápida y segura. Actualmente está disponible para clientes de Banco General y Credicorp Bank, y puede integrarse en tu sistema mediante los API y SDK oficiales.
En este artículo aprenderás cómo implementar el botón de pago de Yappy en tu aplicación utilizando Node.js.
Bancos que lo ofrecen: Banco general y Credicorp bank
Instalación de SDK
Para comenzar, instala el SDK de Yappy en tu proyecto Node.js. Existen dos opciones:
npm install yappy-node-sdk-X.X.X.tgz
o directamente desde GitHub:
npm install https://github.com/BancoGeneral/Boton-de-Pago-Yappy_Node.js/releases/download/X.X.X/yappy-node-back-sdk-X.X.X.tar
Importar SDK
En tu archivo de configuración o servicio de pagos, importa el SDK de la siguiente forma:
import * as yappy from "yappy-node-sdk";
Obtener url de pago
En este punto, es crucial enviar nuestra información de pago al sistema de yappy(SDK) para obtener un URL de pago, este enlace nos dirigirá a la plataforma de Yappy.
Si deseas integrarla con tus diferentes plataforma de pagos, que es en nuestro caso procederemos a desarrollar una API que utilizara el método POST /api/pagosbgurl
. Este metodo internamente gestionará el siguiente código:
const payment= {
total: 20.17,
subtotal: 20.00,
shipping: 0.00,
discount: 0.00,
taxes: 0.17,
orderId: '1234',
successUrl: 'https://www.urlsuccess.com',
failUrl: 'https://www.urlfail.com',
tel: '61122345',
domain: 'https://www.tutienda.com',
}
const response = await yappyClient.getPaymentUrl(payment); // Pago normal
const response = await yappyClient.getPaymentUrl(payment,true); //Para donaciones
const response = await yappyClient.getPaymentUrl(payment,true, true); //Para donaciones, en modo prueba
const response = await yappyClient.getPaymentUrl(payment,false, true); //Pago normal, en modo prueba
Procesamiento del Pago
Una vez que hemos obtenido la URL de pago de Yappy, es necesario implementar la lógica para procesar el pago cuando Yappy redirige de vuelta a nuestro sistema. Para hacer esto, necesitamos configurar un endpoint que tenga el formato /api/pagosbg
en nuestra aplicación Node.js para manejar la respuesta de Yappy.
app.get('/api/pagosbg', async (req, res) => {
try {
// Procesar la respuesta de Yappy
const success = yappyClient.validateHash(req.query); // success puede ser true o false
//Respuesta de yappy
const { orderId, status, confirmationNumber, hash } = req.query;
// status:
/* «E» para Ejecutado. El cliente confirmó el pago y se completó la compra.
* – «R» para Rechazado. Cuando el cliente no confirma el pago dentro de los cinco minutos que dura la vida del pedido.
* – «C» para Cancelado. El cliente inició el proceso, pero canceló el pedido en el app de Banco General.
*/
// Realizar acciones necesarias con la respuesta de Yappy
// Por ejemplo, actualizar el estado del pedido en la base de datos
// Enviar respuesta al sistema de Yappy indicando que hemos recibido la notificación correctamente
res.json({ status: status, message: 'Notificación de pago recibida correctamente' });
} catch (error) {
console.error('Error al procesar la notificación de Yappy:', error);
res.status(500).json({ status: 'error', message: 'Error interno al procesar la notificación de pago' });
}
});
Conclusion
La integración del Botón de Pago Yappy en Node.js es sencilla gracias al SDK oficial. Con solo unos pasos podrás:
- Generar enlaces de pago seguros.
- Recibir notificaciones de Yappy sobre el estado de la transacción.
- Actualizar tu sistema en tiempo real según el resultado del pago.
- Esto te permitirá ofrecer a tus clientes una experiencia de compra ágil y confiable.