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:
$dopisanie_numeru = $soapClient->call( 'doAddPackageInfoToPostBuyForm', 'sessionId' => $session['sessionHandlePart'], 'transactionId' => 658000000, array ( 'operatorId' => 5, 'packageId' => '6854413566850000000000') ) ) );
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.