Closed diruzcode closed 4 years ago
@rgcl ? :o
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?
@matixhub yo deje un pullrequest para arreglarlo.
@DiruzCode muchas gracias, estoy programando todas las mejoras para antes de este lunes.
Corregido con la versión 1.4.0
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));
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.
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.