UNPKG

payway-sdk

Version:

Payway SDK NODEJS ===============

189 lines (163 loc) 7.01 kB
var versionTodoPago = '1.1.0'; var tenant = 't/1.1/'; var soapAppend = 'services/'; var soapAthorizeAppend = 'Authorize'; var soapOperationsAppend = 'Operations'; var restAppend = 'api/'; var User = require(__dirname + '/User'); var Funciones = require(__dirname + '/func_validaciones.js'); // 01/06 Agregado por AA var wsdl = { operations: __dirname + "/Operations.wsdl", authorize: __dirname + "/Authorize.wsdl" } var endpoint = { production: 'https://apis.todopago.com.ar/', developers: 'https://developers.todopago.com.ar/' } function parseToAuthorizeRequest(optionsAuthorize, fraudControl) { optionsAuthorize["SDK"] = "NodeJS"; optionsAuthorize["SDKVERSION"] = versionTodoPago; optionsAuthorize["LENGUAGEVERSION"] = process.version; var payload = "<Request>"; for (var key in optionsAuthorize) { var value = optionsAuthorize[key]; payload += "<" + key + ">" + value + "</" + key + ">"; } for (var key in fraudControl) { var value = fraudControl[key]; payload += "<" + key + ">" + value + "</" + key + ">"; //console.log(payload); } payload += "</Request>"; optionsAuthorize.Payload = payload; return optionsAuthorize; } module.exports = { sendAutorizeRequest: function(options, parameters, fraudControl, callback) { var soap = require('soap'); process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; var config = { "endpoint": endpoint[options.endpoint] + soapAppend + tenant + soapAthorizeAppend }; soap.createClient(wsdl.authorize, config, function(err, client) { var validationResult = Funciones.validations(fraudControl); if (!validationResult.error) { // si no hay errores de validacion llamo al sar var xml = parseToAuthorizeRequest(parameters, validationResult); client.SendAuthorizeRequest(xml, function(err, result) { callback(result, err); //deuelvo el resultado }, {}, { 'Authorization': options.Authorization }); } else { callback(validationResult.error); } }); }, getAutorizeAnswer: function(options, parameters, callback) { var soap = require('soap'); process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; var config = { "endpoint": endpoint[options.endpoint] + soapAppend + tenant + soapAthorizeAppend }; soap.createClient(wsdl.authorize, config, function(err, client) { //console.log(client.describe()); client.GetAuthorizeAnswer(parameters, function(err, result) { callback(result, err); }, {}, { 'Authorization': options.Authorization }); }); }, returnRequest: function(options, parameters, callback) { var soap = require('soap'); process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; var config = { "endpoint": endpoint[options.endpoint] + soapAppend + tenant + soapAthorizeAppend }; soap.createClient(wsdl.authorize, config, function(err, client) { //console.log(client.describe()); client.ReturnRequest(parameters, function(err, result) { callback(result, err); }, {}, { 'Authorization': options.Authorization }); }); }, voidRequest: function(options, parameters, callback) { var soap = require('soap'); process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; var config = { "endpoint": endpoint[options.endpoint] + soapAppend + tenant + soapAthorizeAppend }; soap.createClient(wsdl.authorize, config, function(err, client) { //console.log(client.describe()); client.VoidRequest(parameters, function(err, result) { callback(result, err); }, {}, { 'Authorization': options.Authorization }); }); }, getStatus: function(options, merchant, operationId, callback) { var Client = require('node-rest-client').Client; client = new Client(); client.get(endpoint[options.endpoint] + tenant + restAppend + "Operations/GetByOperationId/MERCHANT/" + merchant + "/OPERATIONID/" + operationId, function(data, response) { var aux = data.toString('utf-8'); var parseString = require('xml2js').parseString; parseString(aux, function(err, result) { //Mantener consistencia con verciones anteriores var ret = { 'Operations': result.OperationsColections.Operations, }; callback(ret, err); }); }); }, getPaymentMethods: function(options, merchant, callback) { var Client = require('node-rest-client').Client; client = new Client(); client.get(endpoint[options.endpoint] + tenant + restAppend + "/PaymentMethods/Get/MERCHANT/" + merchant, function(data, response) { var aux = data.toString('utf-8'); var parseString = require('xml2js').parseString; parseString(aux, function(err, result) { var ret = { 'PaymentMethodsCollection': result.Result.PaymentMethodsCollection, 'BanksCollection': result.Result.BanksCollection, 'PaymentMethodBanksCollection': result.Result.PaymentMethodBanksCollection, }; callback(ret, err); }); }); }, getByRangeDateTime: function(options, parameters, callback) { var soap = require('soap'); process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; var config = { "endpoint": endpoint[options.endpoint] + soapAppend + tenant + soapOperationsAppend }; soap.createClient(wsdl.operations, config, function(err, client) { //console.log(client.describe()); client.GetByRangeDateTime(parameters, function(err, result) { callback(result, err); }, {}, { 'Authorization': options.Authorization }); }); }, getCredentials: function(email, pass, options, callback) { var config = { "endpoint": endpoint[options.endpoint] + 'api/Credentials' }; User = new User.Create(email, pass, config); User.getCredentials(function(result, err) { // console.log("-------------------***-------------------"); // console.log("getCredentials"); // console.log(result); User.merchantId = result.merchantId; User.apiKey = result.apiKey; callback(result, err); // console.log(err); // console.log("-------------------***-------------------"); }); } };