Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Algorytmy, klasy, funkcje _ [klasa] Poczta Polska API, śledzenie przesyłki, status przesyłki

Napisany przez: jaslanin 1.04.2013, 14:01:20

Klasa do śledzenia przesyłki,pobierania info o jej stanie z API Poczty Polskiej. Dodatkową funkcją jest konwersja kodu zdarzenia np "P_D" na opis czyli np. "Doręczono" itd.

Link do pobrania: https://github.com/LPodolski/Polish_Post_Tracking/archive/master.zip

Szczegółowe info o API Poczty Polskiej i dokumentacja API dostępna na stronie:
http://www.poczta-polska.pl/webservices/

Przykład użycia:

  1. require_once 'polish_post_tracking/autoloder.php';
  2.  
  3. $PolishPostApi = new \PolishPostTracking\Api;
  4. $packageTracking = $PolishPostApi->checkPackage( '00259007733174854852' );
  5.  
  6. // apply description to event codes, so instead of P_D you get "Doręczenie" in "opisZdarzenia" property
  7. \PolishPostTracking\EventMapper::applyMappingToCheckPackage( $packageTracking );
  8.  
  9. http://www.php.net/print_r( $packageTracking );


Przykład zwrotki:

http://pastebin.com/XkFQB%78%44G

Napisany przez: Crozin 1.04.2013, 14:43:09

- Brak obsługi composera,
- Brak/błędne trzymanie się standardów PSR,
- Funkcja autoloadera działa niepoprawnie. Powinna zawsze zwracać TRUE/FALSE, nie sprawdza czy dana klasa rzeczywiście istnieje w dołączanym pliku,
- Bezpośrednie korzystanie z klasy Exception przy rzucaniu wyjątków,
- Korzystanie z nieistniejącej klasy PolishPostTracking\Exception,
- Mieszanie w zwracanych typach metod, np. PolishPostTracking\EventMapper::mapCode() powinna rzucić wyjątkiem, a nie zwracać FALSE,
- Klasa PolishPostTracking\Api udostępnia jedynie jedną metodę operującą na webserwisie PP, nie udostępniając jednocześnie bezpośredniego dostępu do klienta SOAP.

W skrócie: dużo do poprawy.

Napisany przez: jaslanin 7.04.2013, 17:32:24

Wersja 1.3:

- obsługa composera
- usunięcie EventMapper'a, nie zauważyłem że jest przekazywany w odpowiedzi API kod zdarzenia i nazwa
- udostępnienie bezpośredniego dostępu do SOAP

Przykład wywołania:

  1. require_once 'PolishPostTracking/Autoloder.php';
  2.  
  3. try {
  4.  
  5. $PolishPostApi = new \PolishPostTracking\Api;
  6. $packageTracking = $PolishPostApi->checkPackage( '00259007733174854852' );
  7.  
  8. http://www.php.net/print_r( $packageTracking );
  9.  
  10. } catch( \PolishPostTracking\Exception $E ) {
  11. http://www.php.net/echo 'Error occurred';
  12.  
  13. // in production inform admin by email, save to log file
  14. http://www.php.net/echo '<br> ' . $E->getMessage();
  15. }


Link do pobrania: https://github.com/LPodolski/Polish_Post_Tracking/archive/master.zip

Zwrotka: http://pastebin.com/gBdf6DKv

Zależność composer'a ( composer . json ):
  1. {
  2. "require": {
  3. "polish_post_tracking/polish_post_tracking": "dev-master"
  4. }
  5. }

Napisany przez: userphp 29.08.2019, 11:56:49

Ależ stary odkop!

Czy mógłbym prosić o pomoc, w jaki sposób odczytać np tylko miejscowosc w której aktualnie znajduje się przesyłka ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)