rgcl / webpay-nodejs

[Spanish/Chile] Módulo no oficial para integrar WebPay Plus en Node.js, con soporte para promesas.
GNU Lesser General Public License v3.0
93 stars 32 forks source link

webpay-nodejs

Módulo no oficial para integrar la API de WebPay, Anulaciones y OneClick de Transbank en Node.js, con soporte para promesas.

Instalación

npm install webpay-nodejs

Transacción normal

Revisa el directorio /showcase para ver ejemplos funcionando $ node showcase/test<DesiredTest>

1) Instanciar

const WebPay = require('webpay-nodejs');

let wp = new WebPay({
    commerceCode: youCommerceCode,
    publicKey: youPublicKey, // .cert file
    privateKey: youPrivateKey, // .key file
    webpayKey: youWebpayKey, // .pem file
    env: WebPay.ENV.INTEGRACION
});

2) Iniciar Transacción

wp.initTransaction({
    buyOrder: buyOrden,
    sessionId: req.sessionId,
    returnURL: url + '/verificar',
    finalURL: url + '/comprobante',
    amount: amount
}).then((data) => {
    res.redirect(data.url + '?token_ws=' + data.token);
})

3) Obtener datos de la transacción

wp.getTransactionResult(token).then((transaccion) => {
    // datos de la transaccion
})

4) Aceptar la transacción

wp.acknowledgeTransaction(token)

Opcionalmente, anular

wp.nullify({
    authorizationCode: '123',
    authorizedAmount: 2000,
    buyOrder: buyOrder
})

Para los métodos de OneClick, usar wp.oneclick.* y wp.onclickmall.* respectivamente.

Changelog

v1.4.0

Las versiones anteriores tienen problemas de seguridad en sus dependencias. Se recomienda actualizar a ésta versión como punto mínimo.

v1.3.0

v1.2.0

v1.0.0 (Breaking Changes)

Legalidades

Agradecimientos a FabianBravoA por el algoritmo de verificación especial de Transbank.

Agradecimientos a Leonardo Gatica por descubrir el significado de los códigos de respuesta de WebPay OneClick desde el número -8 al -1.

Éste código se distribuye con la licencia libre LGPL. Revisar COPYING.LESSER para detalles.