Está en la página 1de 3

Llamada SOAP de Node.

js con tipos
complejos
5
Actualmente estoy intentando usar node-
soap ( https://github.com/milewise/node-soap ) para hacer llamadas al servidor
SOAP de Authorize.net. Sin embargo, parece que no puedo hacer que mi código
de cliente pase los parámetros adecuados. Sé que la función está llamando al
servidor porque recibo una respuesta de error del servidor.

Cuando examino el WSDL, me doy cuenta de que la llamada al servidor requiere


parámetros ComplexType. ¿Hay alguna manera de crear los ComplexTypes que
necesito o puedo simplemente usar objetos Javascript? Aquí está mi código actual:

var soap = require('soap');

var url = 'https://api.authorize.net/soap/v1/Service.asmx?WSDL';

soap.createClient(url, function(err, client) {

var args = {
merchantAuthentication: {
name: '285tUPuS',
transactionKey: '58JKJ4T95uee75wd'
}
};

client.Service.ServiceSoap12.GetTransactionDetails(args,
function(err, result) {

if (err) {
console.log(err);
} else {
console.log(result.GetTransactionDetailsResult[0].messages);
}
});

});

node.js   jabón   jabon-cliente3,048 

Fuente Compartir

Crear 22 mar. 13 Vincent Catalano

  0 
¿Alguna vez encontró una solución a esto?- tier1 02 hace. 13
Pausa
Activar sonido
Cargado :92.52%
Pantalla completa

 1 respuesta
 Ordenando:
 Activo
 Mas antiguo
 Votos
1
El módulo node-soap convierte su objeto JavaScript a XML antes de enviar la
transacción al servidor. Envuelve la solicitud en un elemento xml como se describe
en wsdl. Aquí hay un ejemplo de lo que podría producir node-soap al pasar el
objeto que proporcionó (es importante tener en cuenta que el elemento externo es
creado por el módulo node-soap de acuerdo con el wsdl):

Este ejemplo usa wsdl para la API CyberSource

<data:requestMessage xmlns:data="urn:schemas-cybersource-com:transaction-data-
1.93" xmlns="urn:schemas-cybersource-com:transaction-data-1.93">

<data:merchantAuthentication>
<data:name>285tUPuS</data:name>
<data:transactionKey>58JKJ4T95uee75wd</data:transactionKey>
</data:merchantAuthentication>

</data:requestMessage>
Además, no sé exactamente cómo funciona la API de Authorize.net, pero parece
que es posible que desee verificar el uso de la autenticación de token de nombre
de usuario si es necesario:

client.setSecurity(new soap.WSSecurity('username’, ‘password’));

Fuente Compartir

Crear 07 nov. 13 Alex McKenley

También podría gustarte