2011-06-24 19 views
6

Bu benim ilk kez gönderme, bu yüzden çok açık olmasaydım beni affet. Ben de php ve web hizmetleri hakkında çok az şey bildiğimi söyleyerek bunun önsözünü yapacağım.SOAP <stdClass> ile etiketlenmiş etiketler

yaşadığım sorun şudur:

Bir SOAP istek bir dış kaynaktan (bir istemci) tarafından oluşturulan ve daha sonra benim php SABUN sunucusuna gönderilir. Sunucu isteği aldığında, hiç doğru değil. Bir paket dinleyicisi, php sunucusunun çalıştığı makineye ulaştığında isteğin doğru göründüğünü ortaya çıkarır. Ancak, herhangi bir nedenle, sabun sunucusu talebi alır almaz, her şey berbattır.

Gerçekten de tuhaf olan şey, bu kodun sadece bir hafta önce iyi çalışmasıydı. O zamandan beri değişiklik yapılmadı. Bu 3 farklı makinede denendi, bunlardan biri php'nin farklı bir versiyonunu kullanıyor (ve farklı bir durumda!). Bazı başarılı testlerden kısa bir süre sonra makinelerin biri kapatıldı ve daha sonra bu sorunun ortaya çıkmasından sonra başarısız oldu. Sabun sunucusu alır ne bir örnek Burada

<?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>123456789</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> 

edilir: Burada

<?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> 

sabun sunucunun kodudur İşte

istemci tarafından gönderilen isteğin bir örnek:

: Burada
<?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 olduğunu
<?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> 

Yanıtın neden CoverageRequest bölümünde eksik olduğunu ve neden stdClass etiketlerine birdenbire sarıldığını söyleyen var mı?

Teşekkür ederiz!

+1

Söylemesi zor. Bu yöntem (serialize() bile belgelenmez.) Ayrıca, $ pInput'u bir $ sonucuna yüklediğinizi merak ediyorum.SOAP zarfı zaten düzgün biçimlendirilmişse, neden sadece 4D'nin web servisine aktarılsın? – Bretticus

+1

Belki de, gerçek bir SOAP Sunucusu yazmanız gerekir: http://www.php.net/manual/en/soapserver.soapserver.php ve daha sonra giriş yapın ve 4D Hizmetine uygun olduğundan emin olduğunuz bir SOAP istemcisi yazın. – Bretticus

+0

İstemci isteğinin wat olduğundan emin misiniz? Emin olmak için wireshark kullanarak kontrol etmeyi deneyebilirsiniz. Soapicer'in kullanımı ile Bretticus'a katılıyorum. –

cevap

1

Cevabı abotu'ya bağlayamıyorum ama stdClass'ı açıklayabilirim.

StdClass türünde bir nesne basit bir sarıcıdır. Sen tip stdClass sınıfını bulunca gibi bir nesneye bir dizinin bir savaş dönüşüm: Bu bir var_dump() yaptıysak

(object)array('keyname' => 'value') 

, sen almak istiyorum:

object(stdClass)#1 (1) { 
    ["keyname"]=> 
    string(5) "value" 
} 

Her dilde bulunan tüm nesneler bazı temel nesnelerden devralınır. Bunu PHP'de tahmin ediyorum stdClass.

(cevabı sevip sevmediğimi Oy.)

Dustin

0

CoverageRequest bölüm CoverageResponse sınıfının bir parçası değildir. CoverageResponse sınıfı, tek bir RequestorInformationModule örneği ve CoverageResponseDetail nesnelerinin açık uçlu dizisini içerir.

StdClass'ın neden görünmesinin en iyi tahminim, CoverageRequest ve CoverageResponse öğelerindeki adlandırılmamış complexTypes'in kullanılmasından kaynaklanmaktadır.