Interroger la Blue Gallery

tkbluegalleryLa procédure d’interrogation se déroule en 2 étapes :
• Identification avec récupération d’un jeton
• Récupération des données.

Le jeton d’authentification est obtenu en appelant la fonction connectNotation et en fournissant l’email du membre et son mot de passe crypté sha1. Cette fonction retourne un jeton d’authentification.

Il faut ensuite appeler la fonction getCarrierList avec l’email précédemment fourni, le jeton d’authentification retourné et une chaine de caractères pour décrire les options de transfert choisies.

Identification avec récupération d’un jeton

Le jeton d’authentification est obtenu en appelant la fonction connectNotation.
Cette fonction a 2 paramètres en entrée : l’email du membre et son mot de passe crypté sha1. Cette fonction retourne un jeton d’authentification à utiliser par la suite dans les appels des autres fonctions.

Paramètres en entrée

Nom du champ Type Description
Email String Identifiant de connexion du membre sur la plateforme
Mot de passe String Encryptage sha1 du mot de passe de connexion sur la plateforme

Paramètres en sortie
Le champs « jeton d’authentification » est une chaine de caractères à utiliser dans l’appel de getCarrierList

Exemple de code

// lier le client au fichier WSDL
$clientSOAP = new SoapClient('https://sandbox-notation.tkblueagency.eu/res/tkblue_sandbox.wsdl');
// executer la methode connectNotation
$_SESSION[‘ETKBAtoken’] = $clientSOAP->connectNotation($_POST['Email'],sha1($_POST['Password']));

Récupération des données

Une fois le jeton d’authentification obtenu en appelant la fonction connectNotation il faut appeler la fonction getCarrierList.
Cette fonction a 3 paramètres en entrée : l’email du membre, le jeton d’authentification et un champ d’options de transfert. Elle retourne les informations concernant les transporteurs sélectionnés.

Paramètres en entrée

Nom du champ Type Description
Email String Identifiant de connexion du membre sur la plateforme
Jeton d’authentification String Retourné par la fonction ConnectNotation
Options de transfert String Détaillé ci-dessous

Le champ « options de transfert » est une chaine de caractères qui sera analysée par un appel PHP de type PARSE QUERY, c’est à dire qu’elle se compose d’une ou plusieurs options de la forme « param1=val1&param2=val2…. »

Les options possibles sont décrites ci-dessous :

Nom du champs Type Description Valeur
pagenumber Int Numéro de la page dans l’ensemble des résultats de la recherche lorsqu’on utilise une recherche paginée. La plage de sélection se précise par un numéro de page et un nombre de résultats (linenumber) par page à retourner. La valeur par défaut est 0
linenumber Int Nombre maximal de prestations à retourner. La plage de sélection se précise par un numéro de page (pagenumber) et un nombre de résultats par page à retourner. La valeur par défaut est 100, c’est aussi la valeur maximale possible. Pour récupérer plus de 100 prestations il faut programmer des appels successifs et gérer la pagination. La valeur par défaut est 100
myScopeOnly Boolean Détermination des transporteurs interrogés : l’ensemble des transporteurs ou seulement les transporteurs mentionnés dans ses flux. « Faux » par défaut. « Vrai » pour restreindre à ses propres transporteurs
Modality String Intitulé du mode de transport « Urban Road » , « Interurban Road » , « Rail » , « River » , « Short Sea Shipping » , « Deep Sea » , « Air »
BusinessName String Raison sociale du transporteur
VatNumber String Numéro de TVA intracommunautaire du transporteur
GHG String Choix de l’affichage GES FR (défaut)/ EN-Gp / EN-Gr
Exemples :
• Modality=Rail&VatNumber=FR09123456789,
• Modality=URBAN ROAD&GHG=EN-Gr
• GHG=FR&pagenumber=2&linenumber=10

Paramètres en sortie
Le retour de la fonction getCarrierList est une chaine au format json contenant 2 paramètres :

Nom du champ Type Description
Total Int Le nombre total de transporteurs concernés par les critères de recherche hors pagination
data JSON Une chaine JSON contenant les informations suivantes pour chaque transporteur sélectionné: BusinessName (raison sociale), VatNumberString (numéro de TVA intracommunautaire), AvgIT (indice TK’T moyen), AvgICO2 (indice CO2/GES moyen selon l’unité choisie par le paramètre GHG)
{"total":"28","data":[{"BusinessName":"AGGREGATEUR TEST","VatNumberString":"FR00521890939","AvgIT":3.2,"AvgICO2":750.4},{"BusinessName":"AIRPARAM","VatNumberString":"FR09521996090","AvgIT":0,"AvgICO2":0},{"BusinessName":"ATLANTIC","VatNumberString":"FR14410737027","AvgIT":50.9,"AvgICO2":3.4},{"BusinessName":"BUREAUVERITAS","VatNumberString":"FR30320531171","AvgIT":64.6,"AvgICO2":0},{"BusinessName":"DEEPWATER","VatNumberString":"FR70434531372","AvgIT":24.3,"AvgICO2":24.4},{"BusinessName":"DOC AIR","VatNumberString":"FR06323880088","AvgIT":22.6,"AvgICO2":3662.2},
{"BusinessName":"INTERROUTEDEUX","VatNumberString":"FR84342063443","AvgIT":23.1,"AvgICO2":0.7},{"BusinessName":"INTERROUTEUN","VatNumberString":"FR02325625440","AvgIT":34.9,"AvgICO2":64.5},
{"BusinessName":"MERBRUN","VatNumberString":"FR19502081185","AvgIT":78.1,"AvgICO2":33.4},{"BusinessName":"OPT FL","VatNumberString":"FR51434872644","AvgIT":53.5,"AvgICO2":0},{"BusinessName":"PACIFIC","VatNumberString":"FR96517433918","AvgIT":53.7,"AvgICO2":1.6},{"BusinessName":"ROUTE_FREEMIUM","VatNumberString":"FR22333062081","AvgIT":15.2,"AvgICO2":0},{"BusinessName":"SEINE","VatNumberString":"FR53529971186","AvgIT":68.6,"AvgICO2":28.2},{"BusinessName":"SNCCF","VatNumberString":"FR54775545957","AvgIT":96.6,"AvgICO2":14.9},{"BusinessName":"URBAINUN","VatNumberString":"FR22327608741","AvgIT":38.6,"AvgICO2":84},{"BusinessName":"VIRGINIE 2","VatNumberString":"FR13352596035","AvgIT":3.1,"AvgICO2":732.3}]}

Pagination
Le paramètre « total » retourné par la fonction getCarrierList permet de gérer une pagination. Lorsque celui-ci est supérieur à 100, il est impératif de préciser le numéro de page à retourner et de procéder à des appels successifs de la fonction en incrémentant ce numéro de page jusqu’à épuisement.

Exemple de code

<? // determiner les données utilisateurs $email,$password
if (isset($_POST['ETKBAconnect'])) {
// désactiver le cache lors de la phase de test
ini_set("soap.wsdl_cache_enabled", "0");
// lier le client au fichier WSDL
$clientSOAP = new SoapClient('https://sandbox-notation.tkblueagency.eu/res/tkblue.wsdl');
// première étape : obtenir le token
// executer la methode connectNotation
$login = $_POST['LoginEmail'];
$pwd = sha1($_POST['Pwd']);
try{
$link = $clientSOAP->connectNotation($login,$pwd);
} catch (Exception $e) {
echo 'Exception reçue : ', $e->getMessage(), "\n";
}

// deuxième étape : déterminer les critères de recherche et lancer l'interrogation
// gestion de la pagination sur getCarrierList
$linenumber = 5;
$pagenumber = 1;
$options = $_POST['option']."&linenumber=".$linenumber;
try{
$res = $clientSOAP->getCarrierList($login,$link,$options);
} catch (Exception $e) {
echo 'Exception reçue : ', $e->getMessage(), "\n";
}
$retour = json_decode($res);
$data = $retour->data;

if ($retour->total > count($data))
{
do{
$pagenumber++;
$options = $_POST['option']."&linenumber=".$linenumber."&pagenumber=".$pagenumber;
$res = $clientSOAP->getCarrierList($login,$link,$options);
$retour = json_decode($res);
$data = $retour->data;
// gérer le contenu retourné dans $data

}while (count($data) == $linenumber);
}
}
?>

Revenir en haut de la page