Beste Tweakers,
Vandaag mag ik mijn eerste ervaring opdoen met PHP & SOAP, iets waar ik hoop meer over te leren.
Online kan ik helaas weinig goeie voorbeelden vinden over wat ik wil.
Ik wil een voorraad opvraag doen per EAN nummer waar ik return krijg van locatie, eannummer en hoeveelheid.
XML Server
Eerst de functions & complextypes opgevraagd, en het benodigde gevonden
Functions:
Complextypes:
Nu moet ik dus een EANcode aan de server geven om results terug te krijgen. Aan de hand van voorbeelden kwam ik tot volgende code, die uiteraard niet werkt.
Heeft iemand toevallig een goed voorbeeld waar je data meegeeft en een resultaat terug krijgt? Of tips die mij verder op weg helpen?
Ik ben al iets verder maar krijg met bovenstaande code de volgende error
Vandaag mag ik mijn eerste ervaring opdoen met PHP & SOAP, iets waar ik hoop meer over te leren.
Online kan ik helaas weinig goeie voorbeelden vinden over wat ik wil.
Ik wil een voorraad opvraag doen per EAN nummer waar ik return krijg van locatie, eannummer en hoeveelheid.
XML Server
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| <wsdl:operation name="GetStockInfo"> <wsdl:input wsaw:Action="http://tempuri.org/IVRCGateway/GetStockInfo" message="tns:IVRCGateway_GetStockInfo_InputMessage" /> <wsdl:output wsaw:Action="http://tempuri.org/IVRCGateway/GetStockInfoResponse" message="tns:IVRCGateway_GetStockInfo_OutputMessage" /> </wsdl:operation> <wsdl:message name="IVRCGateway_GetStockInfo_InputMessage"> <wsdl:part name="parameters" element="tns:GetStockInfo"/> </wsdl:message> <wsdl:message name="IVRCGateway_GetStockInfo_OutputMessage"> <wsdl:part name="parameters" element="tns:GetStockInfoResponse"/> </wsdl:message> <xs:element name="GetStockInfo"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="Identifier" nillable="true" type="xs:string" /> <xs:element minOccurs="0" name="EANCodes" nillable="true" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> |
Eerst de functions & complextypes opgevraagd, en het benodigde gevonden
Functions:
code:
1
| [5] => GetStockInfoResponse GetStockInfo(GetStockInfo $parameters) |
Complextypes:
code:
1
2
3
4
5
6
7
8
| [4] => struct ArrayOfStockInfo { StockInfo StockInfo; } [5] => struct StockInfo { string EANCode; double Quantity; string Store; } |
Nu moet ik dus een EANcode aan de server geven om results terug te krijgen. Aan de hand van voorbeelden kwam ik tot volgende code, die uiteraard niet werkt.
Heeft iemand toevallig een goed voorbeeld waar je data meegeeft en een resultaat terug krijgt? Of tips die mij verder op weg helpen?
code:
1
2
3
4
5
6
7
8
9
10
11
12
| <?php $wsdl_url ="http://www.hosting.nl/VRCGateway.svc?wsdl"; $client = new SoapClient($wsdl_url); $obj = array( 'Identifier' => '', 'EANCodes' =>'8714758000015'); $result = $client->GetStockInfo('', '8714758000015'); var_dump($result); ?> |
Ik ben al iets verder maar krijg met bovenstaande code de volgende error
code:
1
2
3
4
5
6
7
| Fatal error: Uncaught SoapFault exception: [a:DeserializationFailed] The formatter threw an exception while trying to deserialize the message: Error in deserializing body of request message for operation 'GetStockInfo'. End element 'Body' from namespace 'http://schemas.xmlsoap.org/soap/envelope/' expected. Found element 'param1' from namespace ''. Line 2, position 153. in /home/%hosting%/public_html/stoc /index.php:17 Stack trace: #0 [internal function]: SoapClient->__call('GetStockInfo', Array) #1 /home/%hosting%/public_html/stock/index.php(17): SoapClient->GetStockInfo('', '') #2 {main} thrown in /home/%hosting%/public_html/stock/index.php on line 17 |
[ Voor 18% gewijzigd door Loadichus op 27-08-2012 15:41 . Reden: error erbij ]