Diskuze: PPL soap WSDL problem

PHP PHP PPL soap WSDL problem American English version English version

Avatar
Bílý Králík:

Ahoj, moc prosim o pomoc, celej den se patlam v tomhle a nejsem schopen prijit jak to ma bejt a jsem z toho uz zoufalej :-(

Snazim se udelat export pro PPL z eshopu. Jsem vicemene zacatecnik.

<?php
try {
$parametry = array(
'FirCode' => "RA01580078",
'SendNAme' => "honza novak",
'SendStreet' => "ulice 123",
'SendCity' => "mesto",
'SendZipCode' => "12300"
);

$client = new SoapClient("http://ww­w.ppl.cz/IEGa­te/IEGate.asmx?WSDL");
$client->ImportOrderEx­t($parametry);

} catch (Exception $e) {
echo "<h2>Exception Error!</h2>";
echo $e->getMessage();
}

?>

a at zkousim co zkousim, porad koncim na tomhl erroru a nedokazu asi vygooglit v cem je problem :-( Predpokladam, ze vse toci kolem tohohle radku: $client->ImportOrderEx­t($parametry);

Vystup:

Exception Error!

Server was unable to process request. ---> Object reference not set to an instance of an object.

Verim, ze zkusenejsi programator uvidi chybu na provni pohled ;-)

jinak reference k tyhle pouzity PPL metode jsou tady http://www.ppl.cz/…/IEgate.asmx?…

Predem moc dekuju za jakoukoliv kolegum pomoc!

 
Odpovědět 3.2.2015 18:14
Avatar
coells
Redaktor
Avatar
Odpovídá na Bílý Králík
coells:
$client = new SoapClient("http://www.ppl.cz/IEGAte/IEGate.asmx?WSDL");
 
Nahoru Odpovědět 3.2.2015 18:24
Avatar
Odpovídá na coells
Bílý Králík:

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");
 
Nahoru Odpovědět 3.2.2015 19:44
Avatar
Bílý Králík:

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.

 
Nahoru Odpovědět 3.2.2015 19:46
Avatar
sahlepik
Člen
Avatar
sahlepik:
$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

Editováno 3.2.2015 20:36
 
Nahoru Odpovědět 3.2.2015 20:35
Avatar
sahlepik
Člen
Avatar
sahlepik:

Aha, teď se dívám, že to co navrhuju je pro import více objednávek. Tady asi problém nebude.

 
Nahoru Odpovědět 3.2.2015 20:38
Avatar
coells
Redaktor
Avatar
Odpovídá na Bílý Králík
coells:

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.

 
Nahoru Odpovědět 3.2.2015 20:40
Avatar
Odpovídá na sahlepik
Bílý Králík:

dekuju za reakci. Nene, oboji je platne:

ImportOrderExt
Rozšířený import objednávky.

 
Nahoru Odpovědět 3.2.2015 22:49
Avatar
Odpovídá na coells
Bílý Králík:

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

 
Nahoru Odpovědět 3.2.2015 22:52
Avatar
Odpovídá na coells
Bílý Králík:

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 :-(

 
Nahoru Odpovědět 3.2.2015 22:55
Avatar
Bílý Králík:

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 ;-)

 
Nahoru Odpovědět 3.2.2015 23:06
Avatar
coells
Redaktor
Avatar
coells:
$parametry = array(
'FirCode' => "RA01580078",
'order' => array(
'SendNAme' => "honza novak",
'SendStreet' => "ulice 123",
'SendCity' => "mesto",
'SendZipCode' => "12300"
));
 
Nahoru Odpovědět 4.2.2015 0:02
Avatar
Odpovídá na coells
Bílý Králík:

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

Editováno 4.2.2015 7:56
 
Nahoru Odpovědět 4.2.2015 7:55
Avatar
Bílý Králík:

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!

 
Nahoru Odpovědět 4.2.2015 7:58
Avatar
Bílý Králík:

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

 
Nahoru Odpovědět 4.2.2015 8:48
Avatar
coells
Redaktor
Avatar
Odpovídá na Bílý Králík
coells:

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.

 
Nahoru Odpovědět 4.2.2015 14:08
Avatar
Odpovídá na coells
Bílý Králík:

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.

 
Nahoru Odpovědět 4.2.2015 15:08
Avatar
radoslavius
Člen
Avatar
Odpovídá na Bílý Králík
radoslavius:

Už máš nějaký ten funkční kód? Hodil bys ho na github jak jsi psal?

 
Nahoru Odpovědět 9.6.2015 10:08
Avatar
Bílý Králík:

Ahoj, nemel jsem bohuzel pak uz cas to dodelat a uplne ty prace prerusil ale budu s tim muset nejak pohnout :-(

 
Nahoru Odpovědět 9.6.2015 12:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.