PHP와 SOAP을 사용하여 UPS Freight Rating Web Service를 만들려고합니다. UPS는 SOAP 클라이언트 용 WSDL을 제공합니다 (중요한 부분은 아래에 붙여 넣었습니다).PHP에서 SOAP을 사용하여 XML 요청 보내기
제 질문은 SOAP 클라이언트를 사용하여 보낼 XML 문서를 어떻게 구성합니까? 내 요청을 PHP 배열 또는 거대한 문자열로 형식화할지 여부에 대한 상충되는 보고서를 보았습니다. 이 문서가 작성되면 PHP에서 작성한 SOAP 클라이언트를 통해 요청을 어떻게 처리해야합니까? WSDL에의
부분 : 내 XML 문서의
<wsdl:binding name="FreightRateBinding" type="tns:FreightRatePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="ProcessFreightRate">
<soap:operation soapAction="http://onlinetools.ups.com/webservices/FreightRateBinding/v1.0" style="document"/>
<wsdl:input name="RateRequest">
<soap:body parts="Body" use="literal"/>
<soap:header message="tns:RateRequestMessage" part="UPSSecurity" use="literal">
<soap:headerfault message="tns:RateErrorMessage" part="RateError" use="literal"/>
</soap:header>
</wsdl:input>
<wsdl:output name="RateResponse">
<soap:body parts="Body" use="literal"/>
</wsdl:output>
<wsdl:fault name="RateError">
<soap:fault name="RateError" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
부분, 지금까지 :
<?xml version="1.0" ?>
<FreightRateRequest>
<Request>
<RequestOption>1</RequestOption>
</Request>
<ShipFrom>
<Address>
<Name>Test</Name>
<AddressLine1>17 MacDade Blvd</AddressLine1>
<City>Collingdale</City>
<PostalCode>19023</PostalCode>
<CountryCode>US</CountryCode>
<Phone>
<Number>1-800-249-0011</Number>
</Phone>
</Address>
</ShipFrom>
<ShipperNumber>21W17V</ShipperNumber>
<ShipTo>
<Name>Test</Name>
<AddressLine1>14908 Sandy Lane</AddressLine1>
<City>San Jose</City>
<PostalCode>95124</PostalCode>
<CountryCode>US</CountryCode>
</ShipTo>
PHP, 지금까지 :
이$mySOAP = new SoapClient("FreightRate.wsdl", $myOptionsArray);
이 어떤 도움을 크게 감상 할 수있다 . 또한 필요한 경우 추가 정보로 회신 할 것입니다.
wsdl에서 실행할 수 있으며 여기에서 ProcessFreightRate에 관한 부분을 게시 할 수 있습니까? $ client = 새로운 SoapClient ('http : // yourwsdl'); var_dump ($ client -> __ getTypes()); – Charlie
이것은 XML 스키마를 반환할까요? 마크 업이 var_dump()가 내뱉는 것보다 훨씬 깔끔한 톤이므로, 원하는 경우 부분을 게시 할 수 있습니다. –