Diskuze: PPL soap WSDL problem
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 19 zpráv z 19.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
$client = new SoapClient("http://www.ppl.cz/IEGAte/IEGate.asmx?WSDL");
Ahoj, dekuju za rychlou odpoved, ale nevidim rozdil:
<?php
try {
$parametry = array(
'FirCode' => "RA01580078",
'SendNAme' => "honza novak",
'SendStreet' => "ulice 123",
'SendCity' => "mesto",
'SendZipCode' => "12300"
);
//$client = new SoapClient("http://www.ppl.cz/IEGate/IEGate.asmx?WSDL");
$client = new SoapClient("http://www.ppl.cz/IEGAte/IEGate.asmx?WSDL");
$client->ImportOrderExt($parametry);
} catch (Exception $e) {
echo "<h2>Exception Error!</h2>";
echo $e->getMessage();
}
?>
a
$client = new SoapClient("http://www.ppl.cz/IEGAte/IEGate.asmx?WSDL");
Kdyz jsem si to ted copy&paste doma odtud, tak mi to tam nahazelo ty pomlcky jeste u ImportOrder-Ext, ale v puvodni zprave to neni.
$client->ImportOrderExt($parametry);
Koukal jsem na oficiální dokumentaci a možná vidím rozdíl. Nepatří zde spíš "ImportOrdersExt"?
Vycházím z této dokumentace:
http://www.ppl.cz/…/IEGate.asmx
První kód, co jsi posílal, obsahuje whitespace, takže se to tvářilo jako neplatné URL, moji první odpověď můžeš ignorovat. Pokud pracuješ s webovými službami, je nejlepší si to vždy nejprve ověřit v prohlížeči.
Chyba "Object reference not set to an instance of an object" znamená, že to padá na straně serveru.
Tipnu si, že ti chybí povinné parametry, jako třeba SendDateFrom a
SendDateTo.
Podívej se na jejich dokumentaci a zkontroluj si seznam povinných
položek.
dekuju za reakci. Nene, oboji je platne:
ImportOrderExt
Rozšířený import objednávky.
To bych uplne netipoval, samozrejme muzu vyzkouset doplnit.
Tahle chyba na googlu vyhodi miliardu ruznejch veci na stackowerflow apod a
prave se mi v tom nedari zorientovat, vsude se pise neco hrozne slozityho
Typu ze mam posilat objekt ale posilam array, nebo obracene, vubec z toho nejsem moudrej prave.
Moc dekuju, ze mi pomahas
hm hm, neni mozny ze je chyba, ze posilam array misto xml objektu viz dokumentace? (http://www.ppl.cz/…/IEGate.asmx?…)
Pripadne ze to ma bejt array v arrayi viz dokumentace.
jsem z toho fakt jelen
Psal jsem i na podporu IT od PPL, jestli nemaji nejakou vzorovou tridu nebo neco, pry to predali a budou me kontaktovat. Tak to jsem zvedavej, jak velkou "podporu" od nich dostanu. Pokud bych neco zjistil, obratem sem doplnim samozrejme.
Zkousel jsem taky najit nejakej zdarma modul pro nekterej z opensource eshopu, abych tu logiku z toho vytahl, ale zatim vsechno marny a beznadejny.
Kazdopadne pokud se mi toto povede vyresit, i za pomoci od vas, hodim to jako
navrat komunite na github pro ostatni potencialni zajemce, protoze nic podobnyho
jsem nikde neobjevil az me to zarazi, protoze to jiste resila spousta lidi. Na
foru jakpsatweb.cz jsem dokonce vygooglil 6 let starej dotaz na tohle tema, bez
odpovedi
bohuzel taky nepomaha
Jeste jsem nasel pro lepsi orientaci takovejhle vycuc co se ma odeslat:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="PPLIEGate">
<SOAP-ENV:Body>
<ns1:ImportOrdersExt>
<ns1:FirCode>?</ns1:FirCode>
<ns1:Orders>
<ns1:Items>
<ns1:anyType>?</ns1:anyType>
</ns1:Items>
<ns1:ErrorCode>0</ns1:ErrorCode>
<ns1:ErrorMessage>?</ns1:ErrorMessage>
</ns1:Orders>
</ns1:ImportOrdersExt>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Hm hm, zkusim jeste udelat pole items pod orders
Ha tak pozor! Kdyz jsem upravil tu coellsovu radu na sprave Orders misto order, tak uz je posun a rika to SOAP-ERROR: Encoding: object has no 'ErrorCode' property , to vypada slibne!
Vyborne panove, tak coells to rozlouskl!!!
Sice mi to jeste nefunguje, ale tento problem vyresen! Hrozne moc dekuju,
laboroval bych nad tim dalsich nekolik dni a propadal depresi
Az to budu mit, hodim na GitHub
Sice je to podivné, protože podle schématu tam má být v operaci ImportOrderExt element "order", nikoliv "Orders" (ten má být v operaci ImportOrdersExt), ale hlavně, že ti to funguje.
To je tak, ze se mi pomichaly ty metody, je tam ImportOrdersExt i
ImportOrderExt a jedno ma order a druhy orders omlouvam se, moje chyba.
Už máš nějaký ten funkční kód? Hodil bys ho na github jak jsi psal?
Ahoj, nemel jsem bohuzel pak uz cas to dodelat a uplne ty prace prerusil ale
budu s tim muset nejak pohnout
Zobrazeno 19 zpráv z 19.