Cette version de la bibliothèque est conçue pour fancourier api v2.0 (réponses basées sur JSON). Le code fonctionne et il existe des exemples pour toutes les requêtes API, cependant, la documentation n'est pas encore prête.
Toutes les requêtes ont la méthode getData()
qui renvoie la réponse non traitée de l'API. Des fonctions supplémentaires dépendent du type d'objet de réponse pour renvoyer les données traitées.
REMARQUE Pour le moment, il est conçu pour fonctionner avec PHP 7.0 et versions ultérieures.
Cependant, le plan est d'ajouter des déclarations de type et de retour pour toutes les fonctions, ce qui poussera les exigences à PHP 8.1 au minimum.
Exiger le package via composer
composer require shusaura85/fancourier-api
Si utilisé sans composer, vous devrez demander manuellement le fichier autoload.php
require_once ' /path/to/fancourier-api/src/autoload.php ' ;
Pour le moment, une documentation complète et appropriée n’est pas encore disponible. Cependant, il existe des exemples pour chaque type de demande que vous pouvez effectuer.
À l'intérieur, vous trouverez également des commentaires avec une liste complète des fonctions pour chaque request
, response
et object
.
Créez une nouvelle instance de Fancourier.php
fournissant le client_id
, username
, password
et token
.
$ clientId = ' your_client_id ' ;
$ username = ' your_username ' ;
$ password = ' your_password ' ;
$ token = ' load from cache or leave as empty string ' ;
$ fan = new Fancourier Fancourier ( $ clientId , $ username , $ password , $ token );
Ou vous pouvez utiliser la méthode statique de l'instance de test :
$ fan = Fancourier Fancourier:: testInstance ( $ token );
Le token généré a une durée de vie de 24 heures et doit être actualisé après cette période. Vous pouvez obtenir le token généré en utilisant la fonction :
$force_refresh = false;
$token = $fan->getToken($force_refresh);
Si le token spécifié est vide lors de la création de l'instance, il sera généré automatiquement à la première requête.
Demande
$ request = new Fancourier Request GetCosts ();
$ request
-> setParcels ( 1 )
-> setWeight ( 1 )
-> setCounty ( ' Arad ' )
-> setCity ( ' Aciuta ' )
-> setDeclaredValue ( 125 );
Réponse
if ( $ response -> isOk ()) {
var_dump ( $ response -> getData ()); // raw data
// or just the information you want
echo " extraKmCost: " . $ response -> getKmCost (). ' <br /> ' ;
echo " weightCost: " . $ response -> getWeightCost (). ' <br /> ' ;
echo " insuranceCost: " . $ response -> getInsuranceCost (). ' <br /> ' ;
echo " optionsCost: " . $ response -> getOptionsCost (). ' <br /> ' ;
echo " fuelCost: " . $ response -> getFuelCost (). ' <br /> ' ;
echo " costNoVAT: " . $ response -> getCost (). ' <br /> ' ;
echo " vat: " . $ response -> getCostVat (). ' <br /> ' ;
echo " total: " . $ response -> getCostTotal (). ' <br /> ' ;
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}
Demande
$ awb = new Fancourier Objects AwbIntern ();
$ awb
-> setService ( ' Cont Colector ' )
-> setPaymentType ( Fancourier Request CreateAwb:: TYPE_SENDER )
-> setParcels ( 1 )
-> setWeight ( 1 ) // in kg
-> setReimbursement ( 199.99 ) // suma de incasat
-> setDeclaredValue ( 1000 )
-> setSizes ( 10 , 5 , 1 ) // in cm
-> setNotes ( ' testing notes ' )
-> setContents ( ' SKU-1, SKU-2 ' )
-> setRecipientName ( " John Ivy " )
-> setPhone ( ' 0723000000 ' )
-> setCounty ( ' Arad ' )
-> setCity ( ' Aciuta ' )
-> setStreet ( ' Str Lunga ' )
-> setNumber ( 1 )
-> addOption ( ' S ' )
-> addOption ( ' X ' );
$ request = new Fancourier Request CreateAwb ();
$ request -> addAwb ( $ awb );
Réponse
$ response = $ fan -> createAwb ( $ request );
if ( $ response -> isOk ()) {
var_dump ( $ response -> getData ()); // raw data
// or the AWBIntern objects updated with the response information
$ al = $ response -> getAll ();
echo " Count: " . count ( $ al ). " <br /> " ;
foreach ( $ al as $ awbr )
{
if ( $ awbr -> hasErrors ())
{
print_r ( $ awbr -> getErrors ());
}
else
{
echo " AWB: " . $ awbr -> getAwb (). " <br /> " ;
}
}
} else {
var_dump ( $ response -> getErrorMessage ());
}
Contrairement à la version précédente, il n’y a plus de requête CreateAwbBulk. Créez simplement autant d'objets AWBIntern et ajoutez-les à la requête
Demande
$ request = new Fancourier Request CreateAwb ();
// create the first awb
$ awb = new Fancourier Objects AwbIntern ();
$ awb
-> setService ( ' Cont Colector ' )
. . . .
-> addOption ( ' X ' );
// add it to the request
$ request -> addAwb ( $ awb );
// create another awb
$ awb = new Fancourier Objects AwbIntern ();
$ awb
-> setService ( ' Cont Colector ' )
. . . .
-> addOption ( ' X ' );
// add it to the request
$ request -> addAwb ( $ awb );
// create another awb
$ awb = new Fancourier Objects AwbIntern ();
$ awb
-> setService ( ' Cont Colector ' )
. . . .
-> addOption ( ' X ' );
// add it to the request
$ request -> addAwb ( $ awb );
Réponse
$ response = $ fan -> createAwb ( $ request );
if ( $ response -> isOk ()) {
var_dump ( $ response -> getData ()); // raw data
// or the AWBIntern objects updated with the response information
$ al = $ response -> getAll ();
echo " Count: " . count ( $ al ). " <br /> " ;
foreach ( $ al as $ awbr )
{
if ( $ awbr -> hasErrors ())
{
print_r ( $ awbr -> getErrors ());
}
else
{
echo " AWB: " . $ awbr -> getAwb (). " <br /> " ;
}
}
} else {
var_dump ( $ response -> getErrorMessage ());
}
Demande
$ request = new Fancourier Request TrackAwb ();
$ request
-> setAwb ( ' 2150900120086 ' );
Réponse
$ response = $ fan -> trackAwb ( $ request );
if ( $ response -> isOk ()) {
print_r ( $ response -> getData ()); // raw data
print_r ( $ response -> getAll ()); // array of AwbTracker objects
} else {
var_dump ( $ response -> getErrorMessage ());
}
Contrairement à la version précédente, vous pouvez utiliser le même objet TrackAwb() et ajouter autant d'AWB que nécessaire pour suivre.
Demande
$ request = new Fancourier Request TrackAwb ();
$ request
-> addAwb ( ' 2150900120084 ' )
-> addAwb ( ' 2150900120085 ' )
-> addAwb ( ' 2150900120086 ' );
Réponse
$ response = $ fan -> trackAwb ( $ request );
if ( $ response -> isOk ()) {
print_r ( $ response -> getData ()); // raw data
print_r ( $ response -> getAll ()); // array of AwbTracker objects
} else {
var_dump ( $ response -> getErrorMessage ());
}
Vous pouvez désormais obtenir facilement des informations sur les emplacements FANBox et PayPoint disponibles. FAN Courier y appelle PUDO (Pick Up Drop Off).
Lors de la création d'un AWB pour eux, définissez l'adresse sur l'adresse PUDO telle que reçue ici et appelez la fonction setPickupLocation(PUDO_ID)
avec l'ID du PUDO sélectionné.
Demande
$ request = new Fancourier Request GetPudo ();
$ request
-> setType ( Fancourier Request GetPudo:: PUDO_FANBOX );
Réponse
$ response = $ fan -> getPudo ( $ request );
if ( $ response -> isOk ()) {
print_r ( $ response -> getData ()); // raw data
print_r ( $ response -> getAll ()); // array of PUDO objects
} else {
var_dump ( $ response -> getErrorMessage ());
}
La demande d'impression peut imprimer un ou plusieurs AWB à l'aide d'une seule demande.
Vous pouvez spécifier la taille de l'AWB à l'aide de la fonction ->setSize()
. Les options disponibles sont : vide , A4 , A5 et A6 . A6 ne peut être utilisé qu’avec l’option ePod.
L'impression PDF est le mode d'impression par défaut.
Veuillez noter que vous ne pouvez pas demander ZPL et PDF en même temps. L'utilisation de setPdf()
désactivera automatiquement l'option ZPL si elle est définie.
Demande
$ request = new Fancourier Request PrintAwb ();
$ request
-> setPdf ( true )
-> setAwb ( ' 2150900120086 ' );
Réponse
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}
Vous pouvez demander l'AWB au format ZPL (Zebra Programming Language) pour une utilisation avec une imprimante d'étiquettes.
Veuillez noter que vous ne pouvez pas demander ZPL et PDF en même temps. L'utilisation de setZpl()
désactivera automatiquement l'option PDF si elle est définie.
Demande
$ request = new Fancourier Request PrintAwb ();
$ request
-> setZpl ( true )
-> setAwb ( ' 2150900120086 ' );
Réponse
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}
Si vous voulez l'AWB au format HTML, utilisez simplement ->setPdf(false) pour obtenir des données HTML au lieu de PDF.
Demande
$ request = new Fancourier Request PrintAwb ();
$ request
-> setPdf ( false )
-> setAwb ( ' 2150900120086 ' );
Réponse
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}
Demande
$ request = new Fancourier Request DeleteAwb ();
$ request -> setAwb ( ' 2150900120086 ' );
Réponse
$ response = $ fan -> deleteAwb ( $ request );
if ( $ response -> isOk ()) {
var_dump ( $ response -> getData ());
} else {
var_dump ( $ response -> getErrorMessage ());
}
fancourier api est un logiciel open source sous licence MIT.