Rozhraní partnera

Tato sekce dokumentuje požadavky na API partnera. Jedná se o volání, která nám umožní získat stav objednávky nebo platby na partnerově shopu. Anebo naopak partnerskéhu shopu sdělit, že se udála s objednávkou změna.

Komunikace probíhá na bázi RESTfull webových služeb. Na naší straně je vytvořen HTTP požadavek, který odešle data, a je očekávána odpoveď ve formátu JSON.

Následuje výčet podporovaných služeb, kde názvy jsou vytvořeny dle významu. Neklademe žádné nároky na pojmenování umístění.

Všechny data použitá v příkladech jsou pouze ilustrativní.


GET payment/status

Získá aktuální stav platby v partnerském obchodu.

Metoda: 

GET

Parametry:

  • order_id - integer - identifikátor objednávky

Odpoveď:

  • order_id - integer - identifikátor objednávky
  • status - integer - stav platby, 1 - zaplaceno, - 1 nezaplaceno

Příklad
< ?php
//set output as json 
header('Content-type: application/json');
 
//get data from request
$orderId = $_GET['order_id'];
 
//do something with id and get info
//create data for output
$data['order_id'] = $orderId;
//order is for example paid
$data['status'] = 1; 
 
//create string containing JSON data
$json = json_encode($data);
 
//show output
echo $json;
?>
 
OUTPUT: 
 
{"order_id":"123456","status":1}               

PUT payment/status

Nastaví aktuální stav platby v partnerském obchodu.

Metoda: 

PUT

Parametry:

  • order_id - integer - identifikátor objednávky
  • status - integer - stav platby, 1 - zaplaceno, - 1 nezaplaceno
  • data - string - datum, kdy došlo ke změně. Formát YYYY-MM-DD

Odpoveď:

  • status - boolean - true pokud se nastavení povedlo, jinak false

Příklad
< ?php
//set output as json 
header('Content-type: application/json');
 
//get data from request
//one has to parse data from request, bacause there isn't super global 
//variable $_PUT in PHP. So let create it.
$_PUT = array ();
switch ( $_SERVER['REQUEST_METHOD'] ) {
    case !strcasecmp($_SERVER['REQUEST_METHOD'],'PUT'):        
        parse_str( file_get_contents( 'php://input' ), $_PUT );
        break;
    dafault:
        //there is other method than PUT => unsupported operation
        die("unsupported method: PUT was expected");
}    
 
$orderId = $_PUT['order_id'];
$status = $_PUT['status'];
$date = $_PUT['date'];
 
//do something with id and get info
 
//create data for output
//announce success
$data['status'] = true; 
 
//create string containing JSON data
$json = json_encode($data);
 
//show output
echo $json;
?>
 
OUTPUT: 
 
{"status" : true}             

GET order/status

Získá aktuální stav objednávky v partnerském obchodu.

Metoda: 

GET

Parametry:

  • order_id - integer - identifikátor objednávky

Odpoveď:

  • order_id - integer - identifikátor objednávky
  • status - integer - stav objednávky (0 - objednávka vyexpedována (obchod odeslal objednávku zákazníkovi), 1 - objednávka odeslána do obchodu, 2 - objednávka byla vyřízena jen částečně, 3 - objednávka potvrzena (obchod objednávku přijal a potvrzuje, že ji začíná zpracovávat), 4 - storno z pohledu obchodu (obchod stornoval objednávku), 5 - storno z pohledu zákazníka (zákazník se rozhodl stornovat objednávku), 6 - storno - objednávka nebyla zaplacena (zákazník nezaplatil za objednávku), 7 - vráceno ve 14 denní lhůtě (zákazník vrátil zboží v zákonné 14 denní lhůtě), 8 - objednávka byla dokončena u partnera, 9 - objednávka dokončena (zákazník zaplatil a převzal objednávku), 10 - objednávka připravena k vyzvednutí
  • internal_id - big integer - interní identifikátor partnerského obchodu, číslo objednávky usnadní komunikaci
Příklad
< ?php
//set output as json 
header('Content-type: application/json');
 
//get data from request
$orderId = $_GET['order_id'];
 
//do something with id and get info
//create data for output
$data['order_id'] = $orderId;
//order is for example shipped
$data['status'] = 0; 
//let say, taht internal id is 5698444
$data['internal_id'] = 5698444; 
 
//create string containing JSON data
$json = json_encode($data);
 
//show output
echo $json;
?>
 
OUTPUT: 
 
{"order_id": 123456 ,"status":0, "internal_id" : 5698444}              

PUT order/status

Nastaví aktuální stav objednávky v partnerském obchodu.

Metoda: 

PUT

Parametry:

  • order_id - integer - identifikátor objednávky
  • status - integer - stav platby, 1 - zaplaceno, - 1 nezaplaceno
  • transport - array - jsou-li dostupné informace o expedované dopravě jsou zde uvedeny
    • tracking_url - string - URL kde je možné zásilku sledovat
    • note - string - poznámka k přepravě

Odpoveď:

  • status - boolean - true pokud se nastavení povedlo, jinak false

Příklad
< ?php
//set output as json 
header('Content-type: application/json');
 
//get data from request
//one has to parse data from request, bacause there isn't super global 
//variable $_PUT in PHP. So let create it.
$_PUT = array ();
switch ( $_SERVER['REQUEST_METHOD'] ) {
    case !strcasecmp($_SERVER['REQUEST_METHOD'],'PUT'):        
        parse_str( file_get_contents( 'php://input' ), $_PUT );
        break;
    dafault:
        //there is other method than PUT => unsupported operation
        die("unsupported method: PUT was expected");
}    
 
$orderId = $_PUT['order_id'];
$status = $_PUT['status'];
//check if information about transport are available
if (isset($_PUT['transport']) {
    $url = $_PUT['transport']['tracking_url'];
    $note = $_PUT['transport']['note'];
}
 
//do something with id and get info
 
//create data for output
//announce success
$data['status'] = true; 
 
//create string containing JSON data
$json = json_encode($data);
 
//show output
echo $json;
?>
 
OUTPUT: 
 
{"status" : true}             

POST order/invoice

Odešle elektronickou fakturu do partnerského obchodu.

Metoda: 

POST - multipartdata

Parametry:

  • order_id - integer - identifikátor objednávky
  • invoice - multipartdata - soubor faktury ve fromátu PDF

Odpověď:

  • order_id - integer - identifikátor objednávky
  • status - integer - stav objednávky (0 - objednávka vyexpedována (obchod odeslal objednávku zákazníkovi), 1 - objednávka odeslána do obchodu, 2 - objednávka byla vyřízena jen částečně, 3 - objednávka potvrzena (obchod objednávku přijal a potvrzuje, že ji začíná zpracovávat), 4 - storno z pohledu obchodu (obchod stornoval objednávku), 5 - storno z pohledu zákazníka (zákazník se rozhodl stornovat objednávku), 6 - storno - objednávka nebyla zaplacena (zákazník nezaplatil za objednávku), 7 - vráceno ve 14 denní lhůtě (zákazník vrátil zboží v zákonné 14 denní lhůtě), 8 - objednávka byla dokončena u partnera, 9 - objednávka dokončena (zákazník zaplatil a převzal objednávku), 10 - objednávka připravena k vyzvednutí
  • internal_id - big integer - interní identifikátor partnerského obchodu, číslo objednávky usnadní komunikaci


Příklad
< ?php
//set output as json 
header('Content-type: application/json');
 
//get data from request
$orderId = $_POST['order_id'];
 
//invoice file is represented by super global variable $_FILES
//let move incoming invoice to file located "root/data/pdf/invoice.pdf"
$success = move_uploaded_file($_FILES['invoice']['tmp_name'], "root/data/pdf/invoice.pdf");
 
//do something with id and get info
 
//create data for output
$data['status'] = $success; 
 
//create string containing JSON data
$json = json_encode($data);
 
//show output
echo $json;
?>
 
OUTPUT: 
 
{"status" : true}             

BIGtheme.net Joomla 3.3 Templates