Неверный запрос или ответ на синтаксический анализ в NodeJS. Но это работает в PHP.
Вот версия PHP, которая работает:
ini_set("soap.wsdl_cache_enabled", "0");
try {
$oWsdl = @new \SoapClient(
"https://xml.proveid.experian.com/IDSearch.cfc?wsdl",
array(
"exceptions" => 1,
"timeout" => 0,
"connect_timeout" => 0,
"ssl_verify_peer" => false,
)
);
$sAnswer = $oWsdl->Search(getXML());
}
catch (\SoapFault $e)
{
throw $e;
}
print_r($sAnswer);// ******************************************
function getXML() {
return <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<Search>
<Authentication>
<Username>test_acc</Username>
<Password>test_pw</Password>
</Authentication>
<CountryCode>GBR</CountryCode>
<Person>
<Name>
<Forename>Wexhuy</Forename>
<Surname>Cutfamjungofguc</Surname>
</Name>
<Gender></Gender>
<DateOfBirth>1987-02-17</DateOfBirth>
</Person>
<Addresses>
<Address Current="1">
<Premise>random</Premise>
<Postcode>BD634HP</Postcode>
<CountryCode>GBR</CountryCode>
</Address>
</Addresses>
<SearchOptions>
<ProductCode>ProveID_AML</ProductCode>
<DecisionCode>Ssdz</DecisionCode>
</SearchOptions>
</Search>
XML;
}
А вот версия NodeJS, использующая node-soap
Lib. Я также попробовал xml2js
библиотека для разбора ответа, но безуспешно.
soap.createClient(url , function(err, client) {
client.search(xml, function(err, result) {
if(err) {
console.log("Error:", err.message); // Error: Cannot parse response
}
console.log(result); // {}
});
});
Как исправить версию NodeJS?
Может быть, требуются некоторые заголовки или конверт?
Задача ещё не решена.
Других решений пока нет …