Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

hub_principal:exemple_api_php [2018/04/23 11:22] (version actuelle)
Ligne 1: Ligne 1:
 +====== Exemple d'utilisation de l'API REST en Php ======
 +<note important>Attention se script n'est qu'un exemple non exhaustif d'utilisation de l'API REST en php, il n'est en aucun cas à utiliser tel quel en Production. </note>
 +<code php>
 +<?php
 +//    This program is free software: you can redistribute it and/or modify
 +//    it under the terms of the GNU Lesser General Public License (LGPL) as
 +//    published by the Free Software Foundation, either version 2 of the License,
 +//    or (at your option) any later version.
 +//
 +//    This program is distributed in the hope that it will be useful,
 +//    but WITHOUT ANY WARRANTY; without even the implied warranty of
 +//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +//   GNU Lesser General Public License for more details.
 +//
 +//    See <http://www.gnu.org/licenses/lgpl.html/>.
 +//    (c) Accelya 2010
 +/**
 +* Appelle une méthode de l'API rest du Hub Numérique Dilicom.
 +*
 +* $method : Nom de la méthode (getOrderDetail, sendOrder, ... )
 +* $params : Tableau contenant les paramètres.
 +*
 +* retour :  Un objet PHP correspondant à l'Objet JSON renvoyé par l'appel au Service Web.
 +*/
 +function callMethod($method,$params) {
 +  $query_string = "https://hub-dilicom.centprod.com/v1/hub-numerique-api/json/".$method."?";
 +  $login = "gln"; //Indiquer votre GLN
 +  $password = "password"; //indiquer votre mot de passe
 +  foreach ($params as $key => $value) {
 +  $query_string .= "$key=" . urlencode($value) . "&";
 +  }
 +  $headers = array(
 +  'Accept: application/json'
 +  );
 +
 +
 +  $ch = curl_init();    
 +  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
 +  curl_setopt($ch, CURLOPT_URL, $query_string);  
 +  curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");  
 +  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 +  $result = curl_exec($ch);  
 +  $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 +  curl_close($ch);  
 +
 +  if($result === FALSE) {
 + die("Une erreur est survenue");
 +  } else if (substr($code,0,1) != "2") {
 + die("Return HTTP code ".$code);
 +  } else {
 + return json_decode($result);
 +  }
 +}
 +
 +?>
 +<h3>Get notices</h3>
 +<pre>
 +<? print_r( callMethod("getNotices",array("initialization" => ""))); ?>
 +<pre>
 +<h3> Send Order </h3>
 +<pre>
 +<?
 +print_r(  callMethod("sendOrder",array(
 +  "glnGroup" => "6235482301523",
 +  "orderId" => "ORD00256",
 +  "customerId" => "test",
 +  "finalBookOwner.identifier" => "test",
 +  "finalBookOwner.civility" => "M",
 +  "finalBookOwner.firstName" => "John",
 +  "finalBookOwner.lastName" => "Doe",
 +  "finalBookOwner.email" => "john@doe.com",
 +  "finalBookOwner.country" => "France",
 +  "finalBookOwner.city" => "Paris",
 +  "finalBookOwner.postalCode" => "75001",
 +  "orderRequestLines[0].ean13" => "9782814500136",
 +  "orderRequestLines[0].glnDistributor" => "3015594118311",
 +  "orderRequestLines[0].quantity" => "1",
 +  "orderRequestLines[0].unitPrice" => "1",
 +  "orderRequestLines[0].lineReference" => "01",
 +  "orderRequestLines[1].ean13" => "9990000000001",
 +  "orderRequestLines[1].glnDistributor" => "3012410002007",
 +  "orderRequestLines[1].quantity" => "1",
 +  "orderRequestLines[1].lineReference" => "02",
 +  "orderRequestLines[1].unitPrice" => "1")));
 +?>
 +</pre>
 +
 +</code>