У меня нулевой опыт использования SOAP, и я выполнил поиск везде, чтобы решить эту проблему.
Я пытаюсь создать запрос XML для отправки на сервер SOAP из моего кода PHP.Это сайт, на котором можно получить актуальную расценку на страхование автомобиля.
Ссылка WSDL: https://eins2.zurich.com.my/VIXAPI/VixService.svc?wsdl
Я проверил с помощью программного обеспечения SOAPUI, и он дал мне XML, как показано ниже для запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:fnGetVehicleDtlsByVIX>
<!--Optional:-->
<tem:VehInputInfo>{"AgentCode":"D02940-000","ParticipantCode":"06","RequestDateTime":"2017-Mar-17 11:00:00 PM","ID":"850321-07-5179","VehNo":"WA823H","Signature":"E448A5DE70160A7C541306B38ABAE3C8826ACD262DF217F9AA8B32244374C5E2E66D26D31874BBD832E43A6A569D20F2DFE8F674AECCFD698850BEBFB13767FD"}</tem:VehInputInfo>
</tem:fnGetVehicleDtlsByVIX>
</soapenv:Body>
</soapenv:Envelope>
Элемент VehInputInfo - обязательный ввод и строка в формате JSON.Ответ был правильным (с помощью программного обеспечения SOAPUI, посмотрите на скриншот здесь ), и следующий шаг - я пытаюсь передать XML-запрос выше в моем коде PHP.
Ниже мой PHPкод:
<?
// error reporting
error_reporting(E_ALL - E_NOTICE);
ini_set('display_errors','On');
//header('Content-type: text/xml');
$wsdl = 'https://eins2.zurich.com.my/VIXAPI/VixService.svc?wsdl';
$client = new SoapClient($wsdl, array('trace'=> 1));
$xml = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:fnGetVehicleDtlsByVIX>
<!--Optional:-->
<tem:VehInputInfo>{"AgentCode":"D02940-000","ParticipantCode":"06","RequestDateTime":"2017-Mar-17 11:00:00 PM","ID":"850321-07-5179","VehNo":"WA823H","Signature":"E448A5DE70160A7C541306B38ABAE3C8826ACD262DF217F9AA8B32244374C5E2E66D26D31874BBD832E43A6A569D20F2DFE8F674AECCFD698850BEBFB13767FD"}</tem:VehInputInfo>
</tem:fnGetVehicleDtlsByVIX>
</soapenv:Body>
</soapenv:Envelope>';
//echo $xml;
try
{
$result = $client-> fnGetVehicleDtlsByVIX($xml);
}
catch (Exception $e)
{
var_dump($e->getMessage());
var_dump($client->__getLastRequest());
var_dump($client->__getLastResponse());
}
Но все, что я получил, было ошибками
Не уверен, что это правильный способ создания XML или есть какой-то другой способ сделать это?
Кто-нибудь может мне помочь?Заранее спасибо.