Esta es mi primera publicación, así que perdónenme si no estoy muy claro. También precederé esto diciendo que realmente sé muy poco sobre php y servicios web.Solicitud SOAP con <stdClass> etiquetas
El problema que estoy teniendo es la siguiente:
una solicitud SOAP se genera por una fuente externa (un cliente) y se envía a mi servidor PHP SOAP. Cuando el servidor recibe la solicitud, no es correcta en absoluto. Un detector de paquetes revela que la solicitud parece correcta cuando llega a la máquina en la que se está ejecutando el servidor php. Pero, por alguna razón, tan pronto como el servidor de jabón recibe la solicitud, todo está en mal estado.
Lo que es realmente extraño es que hace solo una semana este código funcionó bien. No se han realizado cambios desde entonces. Esto ha sido probado en 3 máquinas diferentes, una de las cuales está ejecutando una versión diferente de php (¡y está en un estado diferente!). Una de las máquinas se apagó poco después de algunas pruebas exitosas, y luego se activó hoy después de que este problema surgió solo para fallar.
Aquí es una muestra de la solicitud enviada por el cliente:
<?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>
que aquí hay una muestra de lo que recibe el servidor de jabón:
<?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>
Este es el código para el servidor de jabón:
<?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();
?>
Aquí es el 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>
¿Alguien puede decirme por qué falta la respuesta en la sección CoverageRequest y por qué se envuelve repentinamente en las etiquetas stdClass?
Gracias!
Es difícil de decir. Ese método (serialize() ni siquiera está documentado). Además, se pregunta por qué está cargando $ pInput en un $ resultado.Si el sobre de SOAP ya está formateado correctamente, ¿por qué no simplemente pasarlo al servicio web de 4D? – Bretticus
Quizás, debe escribir un Servidor SOAP real: http://www.php.net/manual/en/soapserver.soapserver.php y luego tomar la entrada y escribir un cliente SOAP que esté seguro que cumple con el Servicio 4D. – Bretticus
¿Está seguro de que la solicitud del cliente es enviada a wat? Podría intentar comprobar usando wireshark para estar seguro. Estoy de acuerdo con Bretticus en el uso de SoapServer. –