Это мой первый пост, так что извините, если я не очень ясно.Я также предвосхищу это, сказав, что я действительно очень мало знаю о php и веб-сервисах.
Проблема, с которой я столкнулся, заключается в следующем:
Запрос SOAP генерируется внешним источником (клиент), а затем отправляется на мой php SOAP-сервер.Когда сервер получает запрос, он совсем не корректен.Анализатор пакетов показывает, что запрос выглядит правильно, когда он достигает компьютера, на котором работает php-сервер.Но по какой-то причине, как только мыльный сервер получает запрос, он все испортил.
Что действительно странно, так это то, что всего неделю назад этот код работал нормально.С тех пор никаких изменений не было.Это было опробовано на 3 разных машинах, на одной из которых установлена другая версия php (и она находится в другом состоянии!).Одна из машин была выключена вскоре после некоторого успешного тестирования, а затем включена сегодня, когда эта проблема возникла только для сбоя.
Вот пример запроса, отправленного клиентом:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CoverageRequest xmlns="http://www.iicmva.com/CoverageVerification/">
<RequestorInformation>
<Organization>
<Name>NVDMV</Name>
</Organization>
<ReasonDetails>
<ReasonCode>BI</ReasonCode>
<TrackingNumber>NVDMV-2011-05-12 10:36:52:286678</TrackingNumber>
</ReasonDetails>
</RequestorInformation>
<Detail>
<PolicyInformation>
<OrganizationDetails>
<NAIC>26654</NAIC>
</OrganizationDetails>
<PolicyDetails>
<VerificationDate>2011-05 12T00:00:00</VerificationDate>
<UniqueKey>1234567890123456789</UniqueKey>
<PolicyState>NV</PolicyState>
</PolicyDetails>
</PolicyInformation>
<InsuredInformation>
<PrimaryNameInformation>
<ParsedName>
<GivenName>FIRSTNAME</GivenName>
<Surname>LASTNAME</Surname>
</ParsedName>
<Name>LASTNAME,FIRSTNAME</Name>
<DriversLicense>NOLICENSE</DriversLicense>
<FEIN>FEIN</FEIN>
</PrimaryNameInformation>
<Address>
<StreetAddress>12345</StreetAddress>
</Address>
</InsuredInformation>
<VehicleInformation>
<VehicleDetails>
<VIN>VIN1234567</VIN>
<Make>MAKE</Make>
<Model>MODEL</Model>
<Year>2000</Year>
</VehicleDetails>
</VehicleInformation>
</Detail>
</CoverageRequest>
</soap:Body>
</soap:Envelope>
Вот пример того, что получает мыльный сервер:
<?xml version="1.0" encoding="UTF-8"?><CoverageRequest><stdClass>
<Individual>
<ParsedName>
<Prefix />
<GivenName />
<MiddleName />
<Surname />
<Suffix />
</ParsedName>
</Individual>
<Organization>
<Name />
</Organization>
<ReasonDetails>
<ReasonCode />
<TrackingNumber />
</ReasonDetails>
</stdClass></CoverageRequest>
Вот код для мыльного сервера:
<?php
function CoverageRequest($pInput) {
error_reporting(~E_ALL);
require_once 'XML/Serializer.php';
$options = array(
XML_SERIALIZER_OPTION_INDENT => ' ',
XML_SERIALIZER_OPTION_LINEBREAKS => "\n",
XML_SERIALIZER_OPTION_DEFAULT_TAG => 'unnamedItem',
XML_SERIALIZER_OPTION_TYPEHINTS => false
);
$serializer = &new XML_Serializer($options);
$result = $serializer->serialize($pInput);
if( $result === true ) {
$xml = $serializer->getSerializedData();
}
// Surround all of the XML in a single tag
$xml = '<CoverageRequest>' . $xml;
$xml = $xml . '</CoverageRequest>';
// Insert the xml header at the beginning
$xml = '<?xml version="1.0" encoding="UTF-8"?>' . $xml;
$fp = fopen('SOAPRequest.txt', 'w');
fwrite($fp, $xml);
fclose($fp);
// Send the data to 4D's web service to be processed
$client = new SoapClient('http://67.214.247.59:8090/4DWSDL/');
$response = $client->VerifyInsurance($xml);
$fp = fopen('SOAPResponse.txt', 'w');
fwrite($fp, $response);
fclose($fp);
$xmlvar = new SoapVar($response, XSD_ANYXML);
return $xmlvar;
}
// Clean up the response to match the guidelines
function callback($buffer) {
$buffer = str_replace('<ns1:CoverageRequestResponse>', '', $buffer);
$buffer = str_replace('</ns1:CoverageRequestResponse>', '', $buffer);
$buffer = str_replace('SOAP-ENV', 'soap', $buffer);
return $buffer;
}
// turn off the wsdl cache
ini_set('soap.wsdl_cache_enabled', '0');
$server = new SoapServer(null, array('uri' => 'http://67.214.247.59/phpserver/verifyinsurance.wsdl'));
$server->addFunction('CoverageRequest');
ob_start('callback');
$server->handle();
ob_end_flush();
?>
Вот wsdl:
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.iicmva.com/CoverageVerification/"
targetNamespace="http://www.iicmva.com/CoverageVerification/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.iicmva.com/CoverageVerification/">
<s:element name="CoverageRequest">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RequestorInformation" type="tns:RequestorInformationModule" />
<s:element minOccurs="0" maxOccurs="1" name="Detail" type="tns:CoverageRequestDetail" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="RequestorInformationModule">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Individual" type="tns:IndividualBlock2" />
<s:element minOccurs="0" maxOccurs="1" name="Organization" type="tns:OrganizationBlock3" />
<s:element minOccurs="0" maxOccurs="1" name="ReasonDetails" type="tns:DocumentDetailBlock2" />
</s:sequence>
</s:complexType>
<s:complexType name="IndividualBlock2">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ParsedName" type="tns:IndividualNameComponent2" />
</s:sequence>
</s:complexType>
<s:complexType name="IndividualNameComponent2">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Prefix" type="tns:NameText2" />
<s:element minOccurs="0" maxOccurs="1" name="GivenName" type="tns:NameText4" />
<s:element minOccurs="0" maxOccurs="1" name="MiddleName" type="tns:NameText5" />
<s:element minOccurs="0" maxOccurs="unbounded" name="Surname" type="tns:NameText6" />
<s:element minOccurs="0" maxOccurs="1" name="Suffix" type="tns:NameText2" />
</s:sequence>
</s:complexType>
<s:complexType name="NameText2">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="NameText4">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="NameText5">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="NameText6">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="OrganizationBlock3">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Name" type="tns:NameText1" />
</s:sequence>
</s:complexType>
<s:complexType name="NameText1">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="DocumentDetailBlock2">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ReasonCode" type="tns:ReasonCode1" />
<s:element minOccurs="0" maxOccurs="1" name="TrackingNumber" type="tns:ResourceIdentifier12" />
</s:sequence>
</s:complexType>
<s:complexType name="ReasonCode1">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="ListAgencyIdentifier" type="s:string" />
<s:attribute name="ListAgencyNameText" type="s:string" />
<s:attribute name="ListNameText" type="s:string" />
<s:attribute name="ListIdentifier" type="s:string" />
<s:attribute name="ListSchemeURI" type="s:string" />
<s:attribute name="ListURI" type="s:string" />
<s:attribute name="ListVersionIdentifier" type="s:string" />
<s:attribute name="NameText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="ResourceIdentifier12">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="CoverageRequestDetail">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PolicyInformation" type="tns:CoveragePolicyRequestModule" />
<s:element minOccurs="0" maxOccurs="1" name="InsuredInformation" type="tns:InsuredModule" />
<s:element minOccurs="0" maxOccurs="1" name="VehicleInformation" type="tns:RiskInformationModule" />
</s:sequence>
</s:complexType>
<s:complexType name="CoveragePolicyRequestModule">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="OrganizationDetails" type="tns:OrganizationBlock4" />
<s:element minOccurs="0" maxOccurs="1" name="PolicyDetails" type="tns:DocumentDetailBlock3" />
<s:element minOccurs="0" maxOccurs="1" name="BodilyInjuryCoverage" type="tns:AmountBlock1" />
<s:element minOccurs="0" maxOccurs="1" name="PropertyDamageCoverage" type="tns:AmountBlock1" />
</s:sequence>
</s:complexType>
<s:complexType name="OrganizationBlock4">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="NAIC" type="tns:PartyIdentifier18" />
</s:sequence>
</s:complexType>
<s:complexType name="PartyIdentifier18">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="DocumentDetailBlock3">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="VerificationDate" type="tns:DateTime1" />
<s:element minOccurs="0" maxOccurs="1" name="UniqueKey" type="tns:ResourceIdentifier12" />
<s:element minOccurs="0" maxOccurs="1" name="PolicyState" type="tns:ResourceIdentifier14" />
</s:sequence>
</s:complexType>
<s:complexType name="DateTime1">
<s:simpleContent>
<s:extension base="s:dateTime">
<s:attribute name="FormatText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="ResourceIdentifier14">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="AmountBlock1">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TypeofLimit" type="tns:ResourceCode9" />
<s:element minOccurs="0" maxOccurs="1" name="CoverageAmount" type="tns:Amount1" />
</s:sequence>
</s:complexType>
<s:complexType name="ResourceCode9">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="ListAgencyIdentifier" type="s:string" />
<s:attribute name="ListAgencyNameText" type="s:string" />
<s:attribute name="ListNameText" type="s:string" />
<s:attribute name="ListIdentifier" type="s:string" />
<s:attribute name="ListSchemeURI" type="s:string" />
<s:attribute name="ListURI" type="s:string" />
<s:attribute name="ListVersionIdentifier" type="s:string" />
<s:attribute name="NameText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="Amount1">
<s:simpleContent>
<s:extension base="s:decimal">
<s:attribute name="currencyidentifier" type="s:string" />
<s:attribute name="CurrencyCodeListVersionIdentifier" type="s:string" />
<s:attribute name="CurrencyCodeList" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="InsuredModule">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PrimaryNameInformation" type="tns:IndividualBlock3" />
<s:element minOccurs="0" maxOccurs="unbounded" name="AdditionalNamesInformation" type="tns:IndividualBlock3" />
<s:element minOccurs="0" maxOccurs="1" name="Address" type="tns:AddresslBlock1" />
</s:sequence>
</s:complexType>
<s:complexType name="IndividualBlock3">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ParsedName" type="tns:IndividualNameComponent2" />
<s:element minOccurs="0" maxOccurs="1" name="Name" type="tns:NameText1" />
<s:element minOccurs="0" maxOccurs="1" name="SocialSecurityNumber" type="tns:PartyIdentifier9" />
<s:element minOccurs="0" maxOccurs="1" name="DriversLicense" type="tns:PartyIdentifier8" />
<s:element minOccurs="0" maxOccurs="1" name="FEIN" type="tns:PartyIdentifier8" />
</s:sequence>
</s:complexType>
<s:complexType name="PartyIdentifier9">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="PartyIdentifier8">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="AddresslBlock1">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="StreetAddress" type="tns:LocationText9" />
<s:element minOccurs="0" maxOccurs="1" name="SubsiteAddress" type="tns:SubsiteAddressComponent1" />
<s:element minOccurs="0" maxOccurs="1" name="City" type="tns:LocationText1" />
<s:element minOccurs="0" maxOccurs="1" name="CountrySubdivision" type="tns:LocationCode2" />
<s:element minOccurs="0" maxOccurs="1" name="PostalCode" type="tns:LocationIdentifier1" />
<s:element minOccurs="0" maxOccurs="1" name="Country" type="tns:LocationCode3" />
</s:sequence>
</s:complexType>
<s:complexType name="LocationText9">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="SubsiteAddressComponent1">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Apartment" type="tns:LocationText2" />
<s:element minOccurs="0" maxOccurs="1" name="Building" type="tns:LocationText7" />
<s:element minOccurs="0" maxOccurs="1" name="Department" type="tns:LocationText7" />
<s:element minOccurs="0" maxOccurs="1" name="Floor" type="tns:LocationText2" />
<s:element minOccurs="0" maxOccurs="1" name="Room" type="tns:LocationText2" />
<s:element minOccurs="0" maxOccurs="1" name="Suite" type="tns:LocationText2" />
</s:sequence>
</s:complexType>
<s:complexType name="LocationText2">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="LocationText7">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="LocationText1">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="LocationCode2">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="ListAgencyIdentifier" type="s:string" />
<s:attribute name="ListAgencyNameText" type="s:string" />
<s:attribute name="ListNameText" type="s:string" />
<s:attribute name="ListIdentifier" type="s:string" />
<s:attribute name="ListSchemeURI" type="s:string" />
<s:attribute name="ListURI" type="s:string" />
<s:attribute name="ListVersionIdentifier" type="s:string" />
<s:attribute name="NameText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="LocationIdentifier1">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="LocationCode3">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="ListAgencyIdentifier" type="s:string" />
<s:attribute name="ListAgencyNameText" type="s:string" />
<s:attribute name="ListNameText" type="s:string" />
<s:attribute name="ListIdentifier" type="s:string" />
<s:attribute name="ListSchemeURI" type="s:string" />
<s:attribute name="ListURI" type="s:string" />
<s:attribute name="ListVersionIdentifier" type="s:string" />
<s:attribute name="NameText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="RiskInformationModule">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="VehicleDetails" type="tns:ResourceIdentificationBlock1" />
</s:sequence>
</s:complexType>
<s:complexType name="ResourceIdentificationBlock1">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="VIN" type="tns:ResourceIdentifier11" />
<s:element minOccurs="0" maxOccurs="1" name="Make" type="tns:ResourceIdentifier12" />
<s:element minOccurs="0" maxOccurs="1" name="Model" type="tns:ResourceIdentifier12" />
<s:element minOccurs="0" maxOccurs="1" name="Year" type="tns:DateTimeText2" />
</s:sequence>
</s:complexType>
<s:complexType name="ResourceIdentifier11">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="DateTimeText2">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:element name="CoverageResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Detail" type="tns:CoverageResponseDetail" />
<s:element minOccurs="0" maxOccurs="1" name="RequestorInformation" type="tns:RequestorInformationModule" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="CoverageResponseDetail">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PolicyInformation" type="tns:CoveragePolicyResponseModule" />
<s:element minOccurs="0" maxOccurs="1" name="InsuredInformation" type="tns:InsuredModule" />
<s:element minOccurs="0" maxOccurs="1" name="VehicleInformation" type="tns:RiskInformationModule" />
</s:sequence>
</s:complexType>
<s:complexType name="CoveragePolicyResponseModule">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="CoverageStatus" type="tns:StatusInformationBlock4" />
<s:element minOccurs="0" maxOccurs="1" name="OrganizationDetails" type="tns:OrganizationBlock4" />
<s:element minOccurs="0" maxOccurs="1" name="PolicyDetails" type="tns:DocumentDetailBlock3" />
<s:element minOccurs="0" maxOccurs="1" name="BodilyInjuryCoverage" type="tns:AmountBlock1" />
<s:element minOccurs="0" maxOccurs="1" name="PropertyDamageCoverage" type="tns:AmountBlock1" />
</s:sequence>
</s:complexType>
<s:complexType name="StatusInformationBlock4">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ResponseDetails" type="tns:ParsedStatusComponent3" />
</s:sequence>
</s:complexType>
<s:complexType name="ParsedStatusComponent3">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ResponseCode" type="tns:EventCode7" />
<s:element minOccurs="0" maxOccurs="unbounded" name="UnconfirmedReasonCode" type="tns:EventCode8" />
</s:sequence>
</s:complexType>
<s:complexType name="EventCode7">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="ListAgencyIdentifier" type="s:string" />
<s:attribute name="ListAgencyNameText" type="s:string" />
<s:attribute name="ListNameText" type="s:string" />
<s:attribute name="ListIdentifier" type="s:string" />
<s:attribute name="ListSchemeURI" type="s:string" />
<s:attribute name="ListURI" type="s:string" />
<s:attribute name="ListVersionIdentifier" type="s:string" />
<s:attribute name="NameText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="EventCode8">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="ListAgencyIdentifier" type="s:string" />
<s:attribute name="ListAgencyNameText" type="s:string" />
<s:attribute name="ListNameText" type="s:string" />
<s:attribute name="ListIdentifier" type="s:string" />
<s:attribute name="ListSchemeURI" type="s:string" />
<s:attribute name="ListURI" type="s:string" />
<s:attribute name="ListVersionIdentifier" type="s:string" />
<s:attribute name="NameText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
</s:schema>
</wsdl:types>
<wsdl:message name="VerifyInsuranceSoapIn">
<wsdl:part name="parameters" element="tns:CoverageRequest" />
</wsdl:message>
<wsdl:message name="VerifyInsuranceSoapOut">
<wsdl:part name="parameters" element="tns:CoverageResponse" />
</wsdl:message>
<wsdl:portType name="VerifyServiceSoap">
<wsdl:operation name="CoverageRequest">
<wsdl:input message="tns:VerifyInsuranceSoapIn" />
<wsdl:output message="tns:VerifyInsuranceSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="VerifyServiceSoap" type="tns:VerifyServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="CoverageRequest">
<soap:operation soapAction="urn:gnwSoap#CoverageRequest" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="gnwSoap">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/" />
<wsdl:port name="VerifyServiceSoap" binding="tns:VerifyServiceSoap">
<soap:address location="http://67.214.247.59/phpserver/server.php" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Может кто-нибудь сказать мне, почему в ответе отсутствует раздел CoverageRequest и почему он внезапно обернут в теги stdClass?
Спасибо!