Nexto.API

Transkrypt

Nexto.API
e-Kiosk S.A.
ul. Prosta 51, 00-838 Warszawa
KRS: 0000304553, NIP: 895-182-75-13
Nexto.API
Przykładowy klient PHP5 do systemu zamówień NextoAPI
Przygotował Rafał Ozga
© 2004-2015 e-Kiosk S.A.
Maj 2015,
Maj 2015, Wersja: 1.5 strona 1
e-Kiosk S.A.
ul. Prosta 51, 00-838 Warszawa
KRS: 0000304553, NIP: 895-182-75-13
Historia zmian
Lp.
Data
Zmiany
1
28/05/15
Zmiana danych firmy
Maj 2015, Wersja: 1.5 strona 2
e-Kiosk S.A.
ul. Prosta 51, 00-838 Warszawa
KRS: 0000304553, NIP: 895-182-75-13
1. Wstep
Przykładowa implementacja modułu składania zamówień poprzez API.Nexto w PHP5
oparta jest na tzw. SOAP Extension– bibliotece oferującej podstawowy zestaw klas do budowania
rozwiązań bazujących na komunikacji WebServices/SOAP.
W naszym przypadku głównym komponentem jakiego używamy jest oczywiście
SoapClient, niemniej, by móc w wygodny sposób przy każdym wywołaniu zdalnych metod
dodawać do tworzonych wiadomości SOAPowych wymagane przez WebService NextoAPI
nagłówki WS-Security , rozszerzyliśmy tę klasę do postaci WSSoapClient.
Kody źródłowe plików są do pobrania ze strony Narzędzia API po zalogowaniu się w panelu
administracyjnym NextoAPI
2. Implementacja
Schemat działania modułu jest następujący:
1. stwórz instancję WSSoapClient podając url WebServicu NextoAPI:
include(’WSSoapClient.class.php’);
$url = "https://www.nextoapi.pl/services/OrderService?wsdl";
$client = new WSSoapClient($url);
2. dodaj parametry nagłówka UsernameToken:
$client->__setUsernameToken(’Twoje_API_ID’,’secret’);
3. przygotuj parametry potrzebne do złożenia zamówienia poprzez NextoAPI Zakładając że
chcemy zamówić egzemplarz o identyfikatorze 3509 a także, że operujemy w modelu, w
którym linki z zamówienia wysyłane są do partnera API, przygotowanie parametrów
wygląda tak:
$params=array(’api_id’=>’Twoje_API_ID’,
’issue_id’=>3509,
’pass’=>’secret’,
//’email’=>’sample@pl’,
’linksDirectlyToClient’ => ’FALSE’);
$createOrderRequest = array(’createOrderRequest’ => $params);
Jeśli nasz model współpracy z NextoAPI polega na tym, że linki wysyłane są bezpośrednio
do klienta w powyższym kodzie należy odkomentować email wprowadzając właściwy email
klienta, a także zmienić flagę linksDirectlyToClient na TRUE.
Maj 2015, Wersja: 1.5 strona 3
e-Kiosk S.A.
ul. Prosta 51, 00-838 Warszawa
KRS: 0000304553, NIP: 895-182-75-13
4. wywołaj procedurę tworzącą zamówienie:
$result=$client->__soapCall(’createOrder’,$createOrderRequest);
5. odczytaj wyniki:
Najpierw wyniki konwertujemy do tablicy:
$createOrderResponse = obj2array($result);
a następnie odczytujemy interesujące nas informacje, np:
echo $createOrderResponse[’statusMessage’]
funkcją print_r możemy wydrukować całą zawartość createOrderResponse. Jej fragment
może wyglądać np. tak:
[items] => Array
(
[id] => 24 [order] => 24
[prodID] => 1608
[issueID] => 3509
[title] => Barbara Radziwiłłówna z Jaworzna-Szczakowej
[price] => 16.05
[links] =>
http://www.nexto.pl/rf/fc?id=l75y3g266qeqoz867z2e&direct [type] => 0
)
6. powtórnie pobierz zamówienie:
$resendParams=array(’api_id’=>’twoj-api-id’,
’pass’=>’twoje-haslo’,
’order_id’=>ORDER_ID);
$resendOrderRequest = array(’resendOrderRequest’ => $resendParams);
$result=$client->__soapCall(’resendOrder’,$resendOrderRequest);
$resendOrderResponse = obj2array($result);
print_r($resendOrderResponse);
Maj 2015, Wersja: 1.5 strona 4
e-Kiosk S.A.
ul. Prosta 51, 00-838 Warszawa
KRS: 0000304553, NIP: 895-182-75-13
3. Uruchamianie
Przykładowego klienta można uruchomić np. z linii poleceń poleceniem:
• php -f orderserviceclient.php
Maj 2015, Wersja: 1.5 strona 5