Módulo no oficial para integrar la API de WebPay, Anulaciones y OneClick de Transbank en Node.js, con soporte para promesas.
npm install webpay-nodejs
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.
Las versiones anteriores tienen problemas de seguridad en sus dependencias. Se recomienda actualizar a ésta versión como punto mínimo.
getTransactionResult retornaba transaction.detailOutput como un array con un único objeto las propiedades, ahora transaction.detailOutput retorna directamente dicho objeto.
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.