L.S.!

Piszę skrypt PHP, który ma dopisać w zakupionej transakcji na allegro numer przesyłki. Zaczerpnąłem z tutoriali allegro większość kodu tj. http://allegro.pl/webapi/tutorials.php/tutorial/id,244 aż do linii 35 (Przykład kodu obrazujący sposób pobierania listy zakupionych przedmiotów). Następnie zamiast tego, co było podane użyłem:

  1. $dopisanie_numeru = $soapClient->call(
  2. 'doAddPackageInfoToPostBuyForm',
  3. 'sessionId' => $session['sessionHandlePart'],
  4. 'transactionId' => 658000000,
  5. 'packageInfo' => array(
  6. 'operatorId' => 5,
  7. 'packageId' => '6854413566850000000000')
  8. )
  9. )
  10. );


W przypadku, gdy podam błędne dane, to otrzymuję oczywiście błąd z info, że np. numer transakcji jest niepoprawny. W momencie, gdy wprowadzane dane są poprawne to niestety metoda zwraca mi pustą strukturę [wyplute dzięki var_dump($dopisanie_numeru)]:

array(1) {
["postBuyFormPackageInfo"]=>
array(3) {
["packageIdsAdded"]=>
string(0) ""
["packageIdsNotAddedIncorrectOperatorId"]=>
string(0) ""
["packageIdsNotAddedIncorrectPackageId"]=>
string(0) ""
}
}

Macie jakiś pomysł? Zgodnie z dokumentacją w przypadku błędu powinno coś wyskoczyć, co nakierowałoby mnie. Tutaj pustka.

Rozwiązanie:

Należy użyć starego sposobu korzystania z API Allegro:

Zgodnie z http://allegro.pl/webapi/tutorials.php/tutorial/id,244 wspomniane są dwa sposoby:

1) nowy NuSOAP (w wersji 0.9.5)
2) stary SoapClient

W przypadku gdy użyjemy przykładu ze starego SoapClient i wywołamy metode doAddPackageInfoToPostBuyForm to metoda działa poprawnie i zwraca oczekiwane dane przy sukcesie/błędach. NuSOAP nie współpracuje poprawnie z doAddPackageInfoToPostBuyForm.