Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [klasa] Poczta Polska API, śledzenie przesyłki, status przesyłki
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
jaslanin
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_Tr...hive/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. print_r( $packageTracking );


Przykład zwrotki:

http://pastebin.com/XkFQBxDG
Crozin
- 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.
jaslanin
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. print_r( $packageTracking );
  9.  
  10. } catch( \PolishPostTracking\Exception $E ) {
  11. echo 'Error occurred';
  12.  
  13. // in production inform admin by email, save to log file
  14. echo '<br> ' . $E->getMessage();
  15. }


Link do pobrania: https://github.com/LPodolski/Polish_Post_Tr...hive/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. }
userphp
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 ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.