DOKUMENTACJA TECHNICZNA KurJerzyAPI wersja 1.0

Transkrypt

DOKUMENTACJA TECHNICZNA KurJerzyAPI wersja 1.0
DOKUMENTACJA TECHNICZNA
KurJerzyAPI
wersja 1.0
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
Spis treści
Wstęp........................................................................3
1. Korzystanie z interfejsu KurJerzyAPI.................................4
1.1 Warunki korzystania z interfejsu.............................................4
1.2 Zabezpieczenia interfejsu.....................................................4
2. Specyfikacja interfejsu KurJerzyAPI.................................6
2.1 Proces składania zamówienia za pośrednictwem KurJerzyAPI...........6
2.2 Operacje podstawowe..........................................................7
2.3 Odbieranie informacji o statusie realizacji zamówienia................12
2.4 Przeprowadzanie integracji na środowisku produkcyjnym..............13
3. Uwagi....................................................................14
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
Wstęp
Prezentowany dokument techniczny jest zbiorem informacji, reguł oraz zasad
koniecznych do integracji zewnętrznych aplikacji klienckich z platformą KurJerzy.pl.
Integracja ta jest możliwa dzięki wykorzystaniu logiki biznesowej zawartej w
udostępnionym interfejsie KurJerzyAPI.
Dokument zawiera następujące pojęcia oraz oznaczenia:
KurJerzyAPI
–
nazwa
interfejsu
umożliwiającego
obsługę
zamówień
platformy
KurJerzy.pl
apiKey – ciąg znaków, będący identyfikatorem użytkownika KurJerzyAPI
apiPin – ciąg znaków, wymagany do poprawnego wygenerowania kluczy Hash
Hash – ciąg znaków, weryfikujący poprawność i wiarygodność przesłanych danych
<?php
- przykładowe fragmenty kodu w języku PHP
?>
- prezentacja tablic, które są przekazywane oraz
zwracane w trakcie wywołań operacji na KurJerzyAPI
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
1. Korzystanie z interfejsu KurJerzyAPI
Współpraca z interfejsem udostępnionym przez platformę www.KurJerzy.pl odbywa się
za pośrednictwem protokołu SOAP w wersji 1.2 z kodowaniem znaków UTF-8.
Zabezpieczenia przesyłanych danych opierają się na weryfikacji poprawności z
wykorzystaniem klucza Hash. Sposób połączenia oraz generowania klucza zostanie
przedstawiony w dalszej części dokumentu.
1.1 Warunki korzystania z interfejsu
Dostęp do interfejsu może być wykorzystywany tylko przez podmiot, który zaakceptował
Regulamin korzystania z KurJerzyAPI oraz zarejestrował się i uzyskał indywidualne
dane logowania w procesie rejestracji. Przekazywanie danych dostępowych do interfejsu
KurJerzyAPI traktowane jest jako nadużycie ze skutkiem zablokowanie dostępu do
interfejsu KurJerzyAPI.
1.2 Zabezpieczenia interfejsu
Podstawowym sposobem zabezpieczenia oraz zweryfikowania danych przesyłanych do
KurJerzyAPI jest generowanie klucza Hash, który musi zostać przekazany jako parametr
każdego wywołania operacji na interfejsie. Sposób tworzenia klucza Hash na przykładzie
języka PHP został przedstawiony poniżej.
<?php
// generowanie klucza Hash
$tablica_danych = array('1', '2', '3');
$apiPin = '123456';
$hashKey
=
md5(
md5(
serialize(
$tablica_danych
)
)
.
$apiPin
);
?>
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
Do poprawnego wygenerowania klucza Hash potrzebna jest tablica danych, która będzie
przekazywana w wywołaniu SOAP oraz apiPin użytkownika interfejsu.
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
2. Specyfikacja interfejsu KurJerzyAPI
Operacje (metody), które zostały zaimplementowane w interfejsie KurJerzyAPI, można
podzielić na operacje podstawowe (kluczowe do przeprowadzenia poprawnego składania
zamówienia) oraz operacje dodatkowe (wspomagające proces składania zamówienia).
Kolejność w jakiej powinny być wykonywane operacje podstawowe jest ściśle określona
co zostało pokazane na diagramie w punkcie 2.1.
2.1 Proces składania zamówienia za pośrednictwem KurJerzyAPI
Przebieg procesu składania zamówień za pośrednictwem interfejsu KurJerzyAPI, który
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
został przedstawiony na powyższym diagramie, dzieli się na 4 etapy:
I. Pobranie danych potrzebnych do złożenia zamówienia
a) pobranie danych produktowych (1:)
b) pobranie terminów odbiorów przesyłek (3:)
II. Złożenie zamówienia (5:)
III. Przyjęcie statusu zamówienia (9:) (niewymagane, można pominąć ten krok)
IV. Pobranie etykiety kurierskiej (10:)
2.2 Operacje podstawowe
getUserProducts ( userApiKey , requestHash, requestData )
Parametry wejściowe:
userApiKey – klucz użytkownika KurJerzyAPI
requestHash – klucz Hash (sposób generowania opisany w punkcie 1.3)
requestData – tablica danych (należy przekazać pusta tablicę)
Parametry wyjściowe:
tablica_produktow – tablica, której klucze stanowią identyfikator produktu, natomiast
wartości zestawieniem parametrów usługi (nazwa produktu, cena produktu, maksymalna
waga produktu).
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
getShipmentDates ( userApiKey , requestHash, requestData )
Parametry wejściowe:
userApiKey – klucz użytkownika KurJerzyAPI
requestHash – klucz Hash (sposób generowania opisany w punkcie 1.3)
requestData – tablica danych (należy przekazać pustą tablicę)
Parametry wyjściowe:
tablica_terminow – tablica, która zawiera dostępne daty odbioru (dates) oraz zakresy
godzinowe dla odbioru przesyłki w najbliższy możliwy dzień (time_from, time_to,
time_from_max, time_to_max).
dates – tablica zawierająca możliwe daty odbiorów, której kluczami są liczby całkowite
(unix timestamp) natomiast wartościami jest reprezantacja tekstowa daty
time_from – wartość typu integer określająca dolną wartość zakresu godzinowego
początku odbioru (początkowa godzina odbioru nie może być mniejsza niż time_from)
time_to - wartość typu integer określająca dolną wartość zakresu godzinowego końca
odbioru (końcowa godzina odbioru nie może być mniejsza niż time_to)
time_from_max - wartość typu integer określająca górną wartość zakresu godzinowego
początku
odbioru
(początkowa
godzina
odbioru
nie
może
być
większa
niż
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
time_from_max)
time_to_max - wartość typu integer określająca górną wartość zakresu godzinowego
końca odbioru (końcowa godzina odbioru nie może być większa niż time_to_max)
Przykład:
Początkowa godzina odbioru musi zawierać się pomiędzy godziną 13 a 15.
Końcowa godzina odbioru musi zawierać się pomiędzy godziną 15 a 17.
makeOrder ( userApiKey , requestHash, requestData )
Parametry wejściowe:
userApiKey – klucz użytkownika KurJerzyAPI
requestHash – klucz Hash (sposób generowania opisany w punkcie 1.3)
requestData – tablica danych (należy przekazać parametry zamówienia)
Kolorem czerwonym zostały oznaczone pola wymagane.
Typy dopuszczalnych wartości:
integer(4) – oznacza wartośc typu liczby całkowitej o maksymalnej długości 4 znaków
string(50) – oznacza wartość typu tekst o maksymalnej długości 50 znaków
float(7) – oznacza wartośc typu liczby zmiennoprzecinkowej o maksymalnej wartości
99999.99
Określenie pól szczegółowych przesyłki (details):
content – zawartość przesyłki
order_value – wartość przesyłki (wartość wysyłanego towaru)
insurance – kwota ubezpieczenie przesyłki
charging – kwota pobrania przesyłki
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
Parametry wyjściowe:
tablica_bledow – tablica zawierająca błędy w przetwarzaniu operacji
tablica_zamowien – tablica, w której zwracane są numery zamówień
getLabel ( userApiKey , requestHash, requestData )
Parametry wejściowe:
userApiKey – klucz użytkownika KurJerzyAPI
requestHash – klucz Hash (sposób generowania opisany w punkcie 1.3)
requestData – tablica danych (należy przekazać parametry zamówienia)
Parametry wyjściowe:
plik_etykiety – wartość typu tekstowej zakodowana w postaci Base64
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
2.3 Odbieranie informacji o statusie realizacji zamówienia
Status realizacji zamówienia wysyłany jest metodą GET na adres URL aplikacji klienckiej
KurJerzyAPI, podany w trakcie ustalania szczegółów integracji. W obecnej wersji
interejsu KurJerzyAPI nie ma potrzeby oczekiwania na status realizacji zamówienia
gdyż zamówienia generowane są od razu po przekazaniu danych do systemu.
Wywołanie skryptu aplikacji będzie zawierało następujące wartości:
orderNumber – numer zamówienia, którego dotyczy status (np. KJ1234567890).
orderStatus – status w postaci liczby całkowitej (1 – w trakcie realizacji, 2 –
zrealizowana popranie, -1 – problem z realizacją zamówienia).
hash – klucz generowany z wyliczenia sumy funkcją md5 ze złączenia kolejno
orderNumber, orderStatus oraz PIN użytkownika KurJerzyAPI. Poniżej przykład w języku
PHP.
<?php
// generowanie klucza Hash dla skryptu odbierajacego status zamowienia
$apiPin = '123456';
$hash = md5( $orderNumber . $orderStatus . $apiPin );
?>
Skrypt wysyłający powiadomienia o statusach zamówień, oczekuje na potwierdzenie
odebrania statusu ciągiem znaków CONFIRMED
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
<?php
// potwierdzenie odebrania statusu zamowienia
echo 'CONFIRMED';
?>
2.4 Przeprowadzanie integracji na środowisku produkcyjnym
Dokonywanie testów integracji na środowisku produkcyjnym https://www.kurjerzy.pl
możliwe jest po uprzednim odznaczeniu opcji „Tryb testowy” w Panelu klienta w
zakładce KurJerzyAPI. Tryb testowy pozwala na składanie zleceń poprzez KurJerzyAPI
bez ich realizacji. Oznacza to, że zamówienia składane w trybie testowym nie obciążą
salda konta Prepaid oraz nie zostanie wygenerowany list przewozowy lecz będzie
możliwość przetestowania pełnej funkcjonalności KurJerzyAPI (składanie zleceń,
pobieranie listów przewozowych).
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]
DOKUMENTACJA TECHNICZNA
KurJerzyAPI wersja 1.0
3. Uwagi
KurJerzyAPI jest w fazie rozwojowej co oznacza, iż kolejne wersje interfejsu będą
wzbogacane o nowe funkcjonalności. Zmiany wprowadzane do interfejsu będą
kompatybilne z poprzednimi wersjami klientów API. Wszelkie sugestie oraz uwagi
prosimy kierować na adres:
[email protected]
iTBross | ul. Dąbrowszczaków 1/104 | 80-374 Gdańsk | NIP 5842358236 | REGON 220900466
email: [email protected]