Implementación del botón de Yappy

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:

@nthony

© 2025 Anthony

𝕏 GitHub