<? class AllegroWebAPISoapClient extends SoapClient { /** * Kraj - Polska. */ const COUNTRY_PL = 1; /** * Logowanie do serwisu testwebapi.pl. */ const COUNTRY_TESTWEBAPI = 228; /** * Zapytanie o wersję Allegro WebAPI. */ const QUERY_ALLEGROWEBAPI = 1; /** * Czas trwania - 3 dni. */ const LIFETIME_3DAYS = 0; /** * Czas trwania - 5 dni. */ const LIFETIME_5DAYS = 1; /** * Czas trwania - 7 dni. */ const LIFETIME_7DAYS = 2; /** * Czas trwania - 10 dni. */ const LIFETIME_10DAYS = 3; /** * Czas trwania - 14 dni. */ const LIFETIME_14DAYS = 4; /** * Koszty pokrywa sprzedający. */ const TRANSPORT_COST_SELLER = 0; /** * Koszty pokrywa kupujący. */ const TRANSPORT_COST_BUYER = 1; /** * Przesyłka pocztowa (polecona/paczka). */ const TRANSPORT_OPTION_POST = 1; /** * Przesyłka pocztowa priorytetowa (polecona/paczka). */ const TRANSPORT_OPTION_POSTPRIORITY = 2; /** * Przesyłka kurierska. */ const TRANSPORT_OPTION_COURIER = 4; /** * Odbiór osobisty. */ const TRANSPORT_OPTION_PERSONAL = 8; /** * Inne. */ const TRANSPORT_OPTION_OTHER = 16; /** * Zgadzam się na przesłanie przedmiotu za granicę. */ const TRANSPORT_OPTION_ABROAD = 32; /** * Przedpłata. */ const PAYMENT_OPTION_PREPAID = 1; /** * Pobranie. */ const PAYMENT_OPTION_POSTPAID = 2; /** * Płatności Allegro. */ const PAYMENT_OPTION_ALLEGRO = 4; /** * Bezpieczne Płatności Allegro z Escrow. */ const PAYMENT_OPTION_ESCROW = 8; /** * Bezpieczne Płatności Allegro z Escrow. */ const PAYMENT_OPTION_OTHER = 16; /** * Pogrubienie. */ const OPTION_BOLD = 1; /** * Miniaturka. */ const OPTION_THUMB = 2; /** * Podświetlenie. */ const OPTION_HIGHLIGHT = 4; /** * Wyróżnienie. */ const OPTION_PREMIUM = 8; /** * Strona kategorii. */ const OPTION_CATEGORY = 16; /** * Strona główna. */ const OPTION_HOME = 32; /** * Automatycznie tworzy klienta dla interfejsu Allegro WebAPI. */ public function __construct() { parent::__construct('https://webapi.allegro.pl/uploader.php?wsdl'); } /** * Redukuje obraz do wielkości nadającej się do przesyłu. * * @param string $url URL obrazka (lokalne, albo sieciowe). * @return string Binarna zawartość obrazka w formacie JPEG. */ { // właśnie tutaj używamy Base64 ręcznie, ale nigdzie indziej! { $temp = imagecreatefromstring($image); $image = imagecreatetruecolor($x, $y); imagecopyresized($image, $temp, 0, 0, 0, 0, $x, $y, imagesx($temp), imagesy($temp) ); imagejpeg($image, 'temp.jpg', 75); } return $image; } } // pobieramy nasz klucz wersji // łączymy się z Allegro WebAPI $client = new AllegroWebAPISoapClient(); try { try { // próba logowania $session = $client->doLoginEnc(ALLEGRO_LOGIN, base64_encode( hash('sha256', ALLEGRO_PASSWORD, true) ), ALLEGRO_COUNTRY, ALLEGRO_KEY, $allegroVerKey); } catch(SoapFault $error) { // błąd niepoprawnego klucza wersji pozwala nam zauważyć fakt iż coś w serwisie się zmieniło if($error->faultcode == 'ERR_INVALID_VERSION_CAT_SELL_FIELDS') { // pobieramy aktualny klucz wersji $version = $client->doQuerySysStatus(1, ALLEGRO_COUNTRY, ALLEGRO_KEY); $allegroVerKey = $version['ver-key']; /* tutaj wykonujemy swoje operacje uaktualniające */ // zapisujemy klucz wersji do pliku file_put_contents('.verkey', $allegroVerKey); // ponowna próba logowania, już z nowym kluczem $session = $client->doLoginEnc(ALLEGRO_LOGIN, base64_encode( hash('sha256', ALLEGRO_PASSWORD, true) ), ALLEGRO_COUNTRY, ALLEGRO_KEY, $allegroVerKey); } // każdy inny błąd to już poważny problem else { throw $error; } } // udało nam się zalogować } catch(SoapFault $error) { } $empty = new stdClass(); $empty->{'fvalue-string'} = ""; $empty->{'fvalue-int'} = 0; $empty->{'fvalue-float'} = 0; $empty->{'fvalue-image'} = " "; $empty->{'fvalue-text'} = " "; $empty->{'fvalue-datetime'} = 0; $empty->{'fvalue-boolean'} = false; // pamiętaj, że maksymalna długość 50 "znaków" liczona jest w bajtach, dlatego polskie znaki, czy encje HTMLa liczone są za kilka bajtów $field = clone $empty; $field->{'fid'} = 1; $field->{'fvalue-string'} = 'Aukcja FooBar'; $form[] = $field; $field = clone $empty; $field->{'fid'} = 2; $field->{'fvalue-int'} = 48878; $form[] = $field; $field = clone $empty; $field->{'fid'} = 3; $form[] = $field; $field = clone $empty; $field->{'fid'} = 4; $field->{'fvalue-int'} = WebAPISOAPClient::LIFETIME_7DAYS; $form[] = $field; $field = clone $empty; $field->{'fid'} = 5; $field->{'fvalue-int'} = 69; $form[] = $field; $field = clone $empty; $field->{'fid'} = 8; $field->{'fvalue-float'} = 666; $form[] = $field; $field = clone $empty; $field->{'fid'} = 9; $field->{'fvalue-int'} = WebAPISOAPClient::COUNTRY_PL; $form[] = $field; // 16 to województwo zachodniopomorskie, numer województwa można pobrać z listy opisu pola $field = clone $empty; $field->{'fid'} = 10; $field->{'fvalue-int'} = 16; $form[] = $field; $field = clone $empty; $field->{'fid'} = 11; $field->{'fvalue-string'} = 'Szczecin'; $form[] = $field; $field = clone $empty; $field->{'fid'} = 12; $field->{'fvalue-int'} = WebAPISOAPClient::TRANSPORT_COST_BUYER; $form[] = $field; // flagi składamy przez ich logiczne sumowanie $field = clone $empty; $field->{'fid'} = 13; $field->{'fvalue-int'} = WebAPISOAPClient::TRANSPORT_OPTION_POST | WebAPISOAPClient::TRANSPORT_OPTION_POSTPRIORITY; $form[] = $field; $field = clone $empty; $field->{'fid'} = 14; $field->{'fvalue-int'} = WebAPISOAPClient::PAYMENT_OPTION_PREPAID | WebAPISOAPClient::PAYMENT_OPTION_ALLEGRO; $form[] = $field; $field = clone $empty; $field->{'fid'} = 15; $field->{'fvalue-int'} = WebAPISOAPClient::OPTION_BOLD | WebAPISOAPClient::OPTION_THUMB | WebAPISOAPClient::OPTION_HIGHLIGHT; $form[] = $field; $i = 0; // maksymalnie 8 zdjęć! foreach( array('zdjecie1.jpg', 'zdjecie2.png', '/var/www/zdjecie3.gif', 'http://example.com/zdjecie4.bmp') as $image) { $field = clone $empty; $field->{'fid'} = 16 + $i; $field->{'fvalue-image'} = WebAPISoapClient::resize($image); $form[] = $field; $i++; } $field = clone $empty; $field->{'fid'} = 24; $field->{'fvalue-string'} = '<h1>Opis</h1> <p>Nasza aukcja - powered by <a href="http://wrzasq.pl/" title="Tworzenie stron i aplikacji internetowych">Wrzasq.pl</a>.</p> <div><GALERIA></div>.'; $form[] = $field; $item = $client->doNewAuctionExt($session['session-handle-part'], $form, 0, $local); $check = $client->doVerifyItem($session['session-handle-part'], $local); if($item['item-id'] == $check) { echo '<p>Wystawiono przedmiot <a href="http://allegro.pl/item' . $item['item-id'] . '.html">' . $item['item-id'] . '</a>.</p>'; } else { } ?>
Wszystko się łączy i mam wyświetlony komunikat o poprawnym logowaniu. A poniżej mam taki błąd:
Kod
Fatal error: Class 'WebAPISOAPClient' not found in /home/messiah/public_html/allegro.php on line 233
CO jest nie tak?