Witam, poszukuje pomocy w wdrożeniu api allegro - stworzyłem skrypt który na sandboxie allegro działał dobrze, jednak po wpisaniu danych produkcyjnych, klient soap zwraca błąd: Podana tablica jest pusta.

odpowiedź wygląda mniej więcej tak:

int(33)

in CroneTransactionController.php line 68
at SoapClient->__call('doGetTransactionsIDs', array(array('sessionHandle' => 'sessionkey//02_1', 'itemsIdArray' => array('5792695037', '5792653974', '5787844737', '5850437145', '5848584665', '5830112991', '5818014766', '5818014157', '5817971935', '5817599034', '5817587314', '5817585919', '5817584910', '5817582436', '5816817524', '5814528509', '5808176961', '5808149970', '5806517350', '5805162285', '5803847145', '5848583583', '5865587707', '5844118575', '5802965420', '5801790225', '5800941808', '5805122581', '5781315562', '5781291427', '5781875215', '5780536365', '5784532152'), 'userRole' => 'seller'))) in CroneTransactionController.php line 68

a to fragment kodu na którym sie wykrzacza:
  1. $options['features'] = SOAP_SINGLE_ELEMENT_ARRAYS;
  2. try {
  3. $soapClient = new \SoapClient(env('ALLEGRO_API_URL','https://webapi.allegro.pl.webapisandbox.pl/service.php?wsdl'), $options);
  4. $request = array(
  5. 'countryId' => 1,
  6. 'webapiKey' => env('ALLEGRO_API_KEY')
  7. );
  8. $result = $soapClient->doQueryAllSysStatus($request);
  9. define('COUNTRY_CODE', 1);
  10. define('WEBAPI_USER_LOGIN', env('ALLEGRO_API_LOGIN'));
  11. define('WEBAPI_USER_ENCODED_PASSWORD', base64_encode(hash('sha256', env('ALLEGRO_API_PASSWORD'), true)));
  12. define('WEBAPI_KEY', env('ALLEGRO_API_KEY'));
  13.  
  14. $versionKeys = array();
  15. foreach ($result->sysCountryStatus->item as $row) {
  16. $versionKeys[$row->countryId] = $row;
  17. }
  18. $request = array(
  19. 'userLogin' => WEBAPI_USER_LOGIN,
  20. 'userHashPassword' => WEBAPI_USER_ENCODED_PASSWORD,
  21. 'countryCode' => COUNTRY_CODE,
  22. 'webapiKey' => WEBAPI_KEY,
  23. 'localVersion' => $versionKeys[COUNTRY_CODE]->verKey,
  24. );
  25. $session = $soapClient->doLoginEnc($request);
  26. $request = array(
  27. 'sessionId' => $session->sessionHandlePart,
  28. // 'pageSize' => 50
  29. );
  30. $sessionId = $session->sessionHandlePart;
  31. $mySellItems = $soapClient->doGetMySoldItems($request);
  32. // var_dump($myWonItems);
  33.  
  34.  
  35. } catch(\Exception $e) {
  36. echo "<pre>".$e;
  37. return 'nothing';
  38. }
  39. $itemList = $mySellItems->soldItemsList->item;
  40. $soldAuctions = array();
  41. foreach ($itemList as $item) {
  42. $soldAuctions[] = $item->itemId;
  43. }
  44.  
  45. var_dump(count($soldAuctions));
  46.  
  47. $allTransactions = $soapClient->doGetTransactionsIDs([
  48. 'sessionHandle'=>$sessionId,
  49. 'itemsIdArray'=>$soldAuctions,
  50. 'userRole'=>'seller'
  51. ]); // dokładnie ta linnia zwraca błąd (#68)
  52.  


Gdzieś czytałem że soapclient lubi zwracać pustą tablice po stronie serwera - ktoś coś na ten temat wie?
Liczę na pomoc, bo obsługa allegro jest czasami śmiechu warta -odpowiadają po tygodniu, i nie na temat...

Pozdrawiam