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

TimeOut transbank port 80 #16

Closed diruzcode closed 4 years ago

diruzcode commented 5 years ago

Desde ayer 17 de oct, transbank cambio su endpoint y ya no acepta puerto 80 solo 443 para integración , etc ... el repo usa el puerto 80 para hacer el envio ya que saca el enpoint del xml si no estoy mal.

Tuve que modificarlo para seguir usandolo aqui :

WebPay.js linea 93

_getClient function

y agregar eesto en el option

let options = { ignoredNamespaces: { namespaces: [], override: true }, endpoint:this.env[type].replace('?wsdl','') };

Nose si sera la mejor manera pero al menos se corrigio., debo probar en producción cualquier cosa igual aviso y si a alguien mas le ocurre que avise.

diruzcode commented 5 years ago

@rgcl ? :o

matixhub commented 4 years ago

Estoy en la misma problemática pero no lo soluciono. _getClient(type) { if(type !== 'normal' && type !== 'nullify' && type !== 'oneclick' && type !== 'oneclickmall') { throw new Error('WebPay::_getClient invalid type parameter. Must be "normal", "nullify", "oneclick" or "oneclickmall"'); } const transactionClientKey = '_transactionClient_' + type; if(!this[transactionClientKey]) { return new Promise((resolve, reject) => { let options = { ignoredNamespaces: { namespaces: [], override: true }, endpoint:this.env[type].replace('?wsdl','') }; soap.createClient(this.env[type], options, (err, client) => { if(err) { return reject(err); } this._wsSecurity.promise().then(() => { client.setSecurity(this._wsSecurity); this[transactionClientKey] = client; resolve(this[transactionClientKey]); }); }); }); } return Promise.resolve(this[transactionClientKey]); } Así me queda la función. Saben que puede ser?

diruzcode commented 4 years ago

@matixhub yo deje un pullrequest para arreglarlo.

https://github.com/rgcl/webpay-nodejs/pull/17

rgcl commented 4 years ago

@DiruzCode muchas gracias, estoy programando todas las mejoras para antes de este lunes.

rgcl commented 4 years ago

Corregido con la versión 1.4.0

matixhub commented 4 years ago

Estimado gracias por el feedback. Actualice la dependencia pero me sigue dando el mismo error en la segunda llamada. getTransactionResult:error! Error: soap:Server: Timeout error(272)

El codigo practicamente es el copy paste.

wp.getTransactionResult(token).then((transactionResult) => { transaction = transactionResult; transactions[transaction.buyOrder] = transaction; transactionsByToken[token] = transactions[transaction.buyOrder];

console.log('transaction', transaction);
 * Tienes 30 amplios segundos para hacer esto, sino la transacción se reversará.
 */
console.log('re acknowledgeTransaction', token);
return wp.acknowledgeTransaction(token);

}).then((result2) => { console.log('pos acknowledgeTransaction', result2); res.send(WebPay.getHtmlTransitionPage(transaction.urlRedirection, token)); }).catch(onError(res));

matixhub commented 4 years ago

Estimado favor cerrar el hilo, el error se presenta cuando se consumen las API por separado, en síntesis funciona el flujo mediante el aplicativo.