2011-06-24 13 views
6

これは私の初めての投稿です。私が非常に明確でない場合、私を許してください。また、私はPHPとWebサービスについてはほとんど知りません。SOAPリクエスト<stdClass>タグ

私がいる問題はこれです:

SOAPリクエストは、外部ソース(クライアント)によって生成され、その後、私のPHPのSOAPサーバーに送信されます。サーバーが要求を受信すると、それはまったく正しくありません。パケットスニッファは、PHPサーバが稼働しているマシンに到達したときに要求が正しいように見えることを示します。しかし、何らかの理由で、石鹸サーバーが要求を受け取るとすぐに、それはすべて台無しです。

本当に奇妙なのは、わずか1週間前にこのコードが正常に機能したことです。それ以来変更はありませんでした。これは3つの異なるマシンで試されていますが、そのうちの1つは別のバージョンのPHPを実行しています(別の状態です)。マシンの1台は、テストが成功した直後にオフにされ、この問題が発生した後に今日はオンになりました。ここで

は、クライアントから送信されたリクエストのサンプルです:ここで

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

は、SOAPサーバーが得るもののサンプルです:ここで

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

は、SOAPサーバーのコードです:ここで

<?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タグで突然ラップされるのか教えていただけますか?

ありがとうございました!

+1

言うのは難しいです。その方法(serialize()は文書化されていません)。なぜ$ pInputを$結果にロードするのか不思議です。SOAPエンベロープがすでに適切にフォーマットされている場合、それを4DのWebサービスに渡すだけではいかがですか? – Bretticus

+1

おそらく、実際のSOAPサーバーを作成して、http://www.php.net/manual/en/soapserver.soapserver.phpを作成し、4Dサービスに準拠していることを確認して入力を行い、SOAPクライアントを作成する必要があります。 – Bretticus

+0

クライアントからの要求が送信されていることを確認してください。 wiresharkを使って確認することができます。私はSoapServerの使用についてBretticusに同意します。 –

答えて

1

私は応答できませんが、私はstdClassを説明することはできません。

タイプstdClassのオブジェクトは単純なラッパーです。あなたは、タイプはstdClassのクラスを取得したときのようなオブジェクトへの配列の戦場変換、:あなたはこのののvar_dump()を行った場合

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

は、あなたが取得したい:

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

すべての言語のすべてのオブジェクトは、基本オブジェクトから継承します。私はPHPでそれを推測しています、それはstdClassです。

(あなたは答えを好きなら私を投票してください。)

ダスティン

0

CoverageRequestセクションはCoverageResponseクラスの一部ではありません。 CoverageResponseクラスには、RequestorInformationModuleの単一インスタンスと、CoverageResponseDetailオブジェクトのオープンエンド配列が含まれます。

stdClassが表示される理由は、CoverageRequest要素とCoverageResponse要素で名前のないcomplexTypesを使用しているためです。