Exporter les statistiques de ses transporteurs

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 getCarrierStatistics 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 getCarrierStatistics

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 getCarrierStatistics.
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 la période sélectionnée.

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 résultats à 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 résultats il faut programmer des appels successifs et gérer la pagination. La valeur par défaut est 100
Year Int L’année de statistiques. y-2, y-1, y, y+1 où y est l’année en cours au moment du lancement de l’interrogation
Month Int Permet de récupérer les résultats pour un mois précis d’une année, ou pour une année civile entière, ou encore pour une année fiscale entière; La période correspondant à une année fiscale est définie dans l’espace chargeur. O (valeur par défaut) pour les statistiques annuelles,

13 pour les statistiques annuelles sur année fiscale,

1 à 12 pour les statistiques mensuelles

Modality String Intitulé du mode de transport. Cette donnée est obligatoire, les résultats ne pouvant pas être obtenus tous modes confondus.  « Urban Road » , « Interurban Road » , « Rail » , « River » , « Short Sea Shipping » , « Deep Sea » , « Air »

 

Exemples :
• Modality=Rail&Year=2016,
• Modality=URBAN ROAD&Year=2017&Month=3

Paramètres en sortie
Le retour de la fonction getCarrierStatistics 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)

Chaque item de la variable data retournée contient les informations suivantes:

Nom du champ Type Description
BusinessName String La raison sociale du transporteur
VatNumberString Sring Son numéro de TVA intracommunautaire
TKM Decimal Le nombre total de tonnes.kilomètres opérées pour le compte du chargeur par ce transporteur
ITKT Decimal Son indice moyen TK’T constaté dans les flux, compris entre 0 et 100
COST Decimal Le coût sociétal total en €
SCO2 Decimal le total des émissions CO2 selon le décret français (du puits à la roue) en kgCO2
SGp Decimal le total des émissions GES selon la norme Européenne (du puits à la roue) en kgCO2e
SGr Decimal le total des émissions GES selon la norme Européenne (du réservoir à la roue) en kgCO2e
ICO2 Decimal Son indice moyen CO2 constaté dans les flux, selon le décret français (du puits à la roue) en gCO2/t.km
IGp Decimal Son indice moyen GES constaté dans les flux, selon la norme Européenne (du puits à la roue) en gCO2e/t.km
IGp Decimal Son indice moyen GES constaté dans les flux, selon la norme Européenne (du réservoir à la roue) en gCO2e/t.km
"total":"2","data":[{"BusinessName":"INTERROUTEUN","VatNumber":"FR02325625440","TKM":"2000000.0000","ITKT":89.335,"COST":"3788.8880","CO2":"131114.0000",
"Gr":"108480.0000","Gp":"135386.0000","ICO2":6.56,"IGr":5.42,"IGp":6.77},{"BusinessName":"TRAUN","VatNumber":"FR49539818948","TKM":"1000000.0000","ITKT":87.515,"COST":"2914.6997","CO2":"108237.0000",
"Gr":"89551.0000","Gp":"111763.0000","ICO2":10.82,"IGr":8.96,"IGp":11.18}]}

Pagination
Le paramètre « total » retourné par la fonction getCarrierStatistics 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 getCarrierStatistics
$linenumber = 20;
$pagenumber = 1;
$options = $_POST['option']."&linenumber=".$linenumber;
try{
$res = $clientSOAP->getCarrierStatistics($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->getCarrierStatistics($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