Я реализовал SOAP API, используя PHP SoapClient , который прекрасно работает для меня
Ниже приведен рабочий код
$soapClient = new SoapClient('https://api4481.service.processPayment/Service_1_0.svc?wsdl');
$params = [
'ClientInfo' => [
'AccountNumber' => 'A2342535',
'AccountSalt' => 'jdv89df',
'UserName' => 'akshay@test.com',
'Password' => 'Pay#123',
'Version' => '3.0'
],
'Transaction' => [
'Reference1' => 'test',
'Reference2' => '',
'Reference3' => '',
'Reference4' => '',
'Reference5' => ''
]
];
try {
$auth_call = $soapClient->processPayment($params);
$result = json_decode(json_encode($auth_call), true);
} catch (SoapFault $fault) {
die('Error : ' . $fault->faultstring);
}
Но когда я попробовал то же самое, используя Node Soap , я получаю следующее сообщение об ошибке:
The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter
Код узла JS:
const soap = require('soap')
let url = 'https://api4481.service.processPayment/Service_1_0.svc?wsdl';
let args = {
"ClientInfo": {
"UserName": "akshay@test.com",
"Password": "Pay#123",
"Version": "3.0",
"AccountNumber": "A2342535",
"AccountSalt": "jdv89df"
},
"Transaction": {
"Reference1": "test",
"Reference2": "",
"Reference3": "",
"Reference4": "",
"Reference5": ""
}
}
soap.createClient(url, function(err, client) {
client.disableCache = true
client.processPayment(args, function(err, result) {
console.log(result);
});
});
Я тоже пытался использовать Strong Soap, но все равно не смог заставить его работать.
Заранее спасибо !!!