Closed hYOUstone closed 6 years ago
Przetestowałem i rzeczywiście jest jakiś problem zgłosiłem to do odpowiedniego zespołu, proszę o cierpliwość.
Ok. Czekamy
Witam. Minęło 10 dni. Czy coś się ruszyło w sprawie błędu?
Pracujemy nad rozwiązaniem problemu, prosiłbym o jeszcze trochę cierpliwości.
I nadal nic? :)
Wysłałem zapytanie do zespołu pracującego nad rozwiązaniem tego problemu. Jak tylko otrzymam jakąś informację dam znać.
Podepnę się pod temat.
Wywołuję metodę w ten sposób:
$result = $soapClient->doAddPackageInfoToPostBuyForm($request);
Jednak php nie zwraca poprawnie odpowiedzi i daje taki błąd: Catchable fatal error: Object of class stdClass could not be converted to string in /home/........php on line 98
Co robię źle? :)
Podeślij przez nasz formularz kontaktowy pełny request i respons w formacie XML sprawdzimy w czym jest problem. W zgłoszeniu zaznacz proszę, że informacje są potrzebne do zgłoszenia numer 664 na GitHub-ie
Podepnę się pod temat. Wywołuję metodę w ten sposób:
$result = $soapClient->doAddPackageInfoToPostBuyForm($request);
Jednak php nie zwraca poprawnie odpowiedzi i daje taki błąd: Catchable fatal error: Object of class stdClass could not be converted to string in /home/........php on line 98
Co robię źle? :)
Podepnę się pod temat. Wywołuję metodę w ten sposób:
$result = $soapClient->doAddPackageInfoToPostBuyForm($request);
Jednak php nie zwraca poprawnie odpowiedzi i daje taki błąd: Catchable fatal error: Object of class stdClass could not be converted to string in /home/........php on line 98
Co robię źle? :)
Ja to robię w ten sposób: Łączę się za pomocą SoapClient'a:
$this->address = 'https://webapi.allegro.pl.allegrosandbox.pl/service.php?wsdl';
$this->apiKey = 'klucz_do_api';
$this->client = new SoapClient($this->address);
$this->version = (array)$this->client->doQuerySysStatus(array(
'sysvar' => 1,
'countryId' => 1, // PL
'webapiKey' => $this->apiKey
));
Pobieram sesję:
$this->allegroResponse = $this->client->doLogin(array(
'userLogin' => $this->allegroLogin, // pobrany z formularza login do konta Allegro
'userPassword' => $this->allegroHaslo, // pobrane haslo z formularza
'countryCode' => 1,
'webapiKey' => $this->apiKey,
'localVersion' => $this->version['verKey']
));
$this->sessionId= $this->allegroResponse->sessionHandlePart;
Wywołuję metodę (znając już ID transakcji):
$this->client->doAddPackageInfoToPostBuyForm([
'sessionId' => $this->sessionId,
'transactionId' => $transactionId, // id transakcji z Allegro
'packageInfo' => array($packageInfo),
]);
gdzie:
$packageInfo = [
'operatorId' => (int)$operatorId, // Kurier wg. kodow z Dokumentacji https://allegro.pl/webapi/documentation.php/show/id,744#method-input
'packageId' => (string)$packageId, // numer przesylki
];
Należy zwrócić uwagę, że packageInfo
jest tablicą w tablicy. W ogóle zwróć uwagę gdzie jakie parametry są wysyłane. Czy są to tablice i jakie mają klucze i wartości. Oraz jaki jest adres do API. Też miałem z tym problem no ale to co tu wysłałem "u mnie działa" :)
@MariaPawlikowska Prosiłbym o podesłanie requesta w formacie XML, jeśli nie ma responsa to prosiłbym o trace-id zadania.
Z tym, że wydaje mi się, że mój problem jest bardziej syntaxowy i zamiana requesta na xml nie wiele pomoże bo będzie on prawidłowy (jak sądzę). Bardziej martwi mnie odpowiedź mojego serwera po wywołaniu tej metody:
Catchable fatal error: Object of class stdClass could not be converted to string in /home/........php on line 98
linia98 wygląda jak poniżej:
$result = $soapClient->doAddPackageInfoToPostBuyForm($request);
Nie bardzo wiem, jak masz to ograne pod spodem i nie prowadzimy tutaj wsparcia w tym zakresie. Prowadzimy wsparcie dla języków w jakich dochodzi do ostatecznej komunikacji z naszymi serwerami. Przykładowo nie wiem czemu w requeście wysyłasz informacje: userId i serverTime. Spójrz na rozwiązanie jakie proponuje @hYOUstone może będzie dla Ciebie pomocne. Przetestowałem request na podesłanych przez Ciebie danych (id dostawcy i numer przesyłki) i wszystko działa prawidłowo.
Przykładowo nie wiem czemu w requeście wysyłasz informacje: userId i serverTime.
Taką tablicę dostaję po wywołaniu metody$soapClient->doLoginEnc($request)
Rozumiem, ale po co w metodzie doAddPackageInfoToPostBuyForm przesyłasz te dane w requeście jest tylko miejsce na sessionId.
Usunę to i dam znać.
W tej chwili mój request wygląda jak niżej:
`Array ( [sessionId] => bbd09425dc5fb2e146862e2dbfbff18be909c6bb155a17//01_1 [transactionId] => 913811536 [packageInfo] => Array ( [0] => Array ( [operatorId] => 6 [packageId] => 00359007734577368479 )
)
)`
I teraz już działa. Tzn. mam response'a.
:)
Numer przesyłki znalazł się na w systemie po stronie panelu 'zamówienia'
I teraz już działa. Tzn. mam response'a.
:)
Numer przesyłki znalazł się na w systemie po stronie panelu 'zamówienia'
Cieszę się, że udało Ci się dojść co stanowiło problem, ale pogubiłem się... Mam rozumie, że błąd został już poprawiony? Aktualizacja do panelu przez API działa?
Tak. Działa. Nadmiar danych pobieranych z doLoginEnc powodował błąd.
Numer przesyłki przesłany przez API znalazł się w panelu w zakładce 'zamówienia'
Dziękuję za pomoc :)
Wywołuję metodę doAddPackageInfoToPostBuyForm z następującymi parametrami:
... metoda zwraca prawidłowy response:
Jak widać po odpowiedzi nr paczki został nadany. Niestety nie widać go w Panelu Sprzedawcy ani po wywołaniu metody doGetPostBuyFormsDataForSellers a mail nie przychodzi (tak jak po nadaniu ręcznie przez Panel). Co ciekawe... Nadałem przez Panel nr paczki ręcznie ale nie widać również tego numeru po wywołaniu metody doGetPostBuyFormsDataForSellers, który powinien być widoczny pod indeksem o nazwie postBuyFormShipmentTracking