Diese Version der Bibliothek ist für fancourier api v2.0 (JSON-basierte Antworten) konzipiert. Der Code funktioniert und es gibt Beispiele für alle API-Anfragen, allerdings ist die Dokumentation noch nicht fertig.
Alle Anfragen verfügen über die Methode getData() , die die unverarbeitete Antwort der API zurückgibt. Zusätzliche Funktionen hängen vom Antwortobjekttyp ab, um verarbeitete Daten zurückzugeben.
HINWEIS Derzeit ist es für die Verwendung mit PHP 7.0 und neuer ausgelegt.
Der Plan besteht jedoch darin, Typ- und Rückgabetypdeklarationen für alle Funktionen hinzuzufügen, um die Anforderungen mindestens auf PHP 8.1 zu übertragen
Fordern Sie das Paket über Composer an
composer require shusaura85/fancourier-api Bei Verwendung ohne Composer müssen Sie die Datei autoload.php manuell anfordern
require_once ' /path/to/fancourier-api/src/autoload.php ' ; Eine vollständige und ordnungsgemäße Dokumentation liegt derzeit noch nicht vor. Es gibt jedoch Beispiele für jeden Anfragetyp, den Sie stellen können.
Darin finden Sie auch Kommentare mit einer vollständigen Funktionsliste für jede request , response und object .
Erstellen Sie eine neue Instanz von Fancourier.php und geben Sie dabei client_id , username , password und token an.
$ 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 );Oder Sie können die statische Methode der Testinstanz verwenden:
$ fan = Fancourier Fancourier:: testInstance ( $ token );Der generierte Token hat eine Lebensdauer von 24 Stunden und muss nach diesem Zeitraum aktualisiert werden. Sie können das generierte Token mit der Funktion erhalten:
$force_refresh = false;
$token = $fan->getToken($force_refresh);
Wenn das angegebene Token beim Erstellen der Instanz leer ist, wird es bei der ersten Anfrage automatisch generiert.
Anfrage
$ request = new Fancourier Request GetCosts ();
$ request
-> setParcels ( 1 )
-> setWeight ( 1 )
-> setCounty ( ' Arad ' )
-> setCity ( ' Aciuta ' )
-> setDeclaredValue ( 125 );Antwort
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 ());
}Anfrage
$ 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 );Antwort
$ 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 ());
}Im Gegensatz zur Vorgängerversion gibt es keine CreateAwbBulk-Anfrage mehr. Erstellen Sie einfach beliebig viele AWBIntern-Objekte und fügen Sie sie der Anfrage hinzu
Anfrage
$ 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 );Antwort
$ 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 ());
}Anfrage
$ request = new Fancourier Request TrackAwb ();
$ request
-> setAwb ( ' 2150900120086 ' );Antwort
$ 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 ());
}Im Gegensatz zur Vorgängerversion können Sie dasselbe TrackAwb()-Objekt verwenden und so viele AWBs hinzufügen, wie Sie zum Verfolgen benötigen
Anfrage
$ request = new Fancourier Request TrackAwb ();
$ request
-> addAwb ( ' 2150900120084 ' )
-> addAwb ( ' 2150900120085 ' )
-> addAwb ( ' 2150900120086 ' );Antwort
$ 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 ());
} Sie können sich jetzt ganz einfach über verfügbare FANBox- und PayPoint-Standorte informieren. FAN Courier ruft dort PUDO (Pick Up Drop Off) an.
Wenn Sie einen AWB für sie erstellen, stellen Sie die Adresse auf die hier erhaltene PUDO-Adresse ein und rufen Sie die Funktion setPickupLocation(PUDO_ID) mit der ID des ausgewählten PUDO auf.
Anfrage
$ request = new Fancourier Request GetPudo ();
$ request
-> setType ( Fancourier Request GetPudo:: PUDO_FANBOX );Antwort
$ 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 ());
} Der Druckauftrag kann einen oder mehrere AWBs mit einem einzigen Auftrag drucken.
Die Größe des AWB können Sie mit der Funktion ->setSize() festlegen. Verfügbare Optionen sind: leer , A4 , A5 und A6 . A6 kann nur mit der ePod-Option verwendet werden.
Der PDF-Druck ist der Standarddruckmodus.
Bitte beachten Sie, dass Sie ZPL und PDF nicht gleichzeitig anfordern können. Durch die Verwendung von setPdf() wird die ZPL-Option automatisch deaktiviert, sofern sie festgelegt ist.
Anfrage
$ request = new Fancourier Request PrintAwb ();
$ request
-> setPdf ( true )
-> setAwb ( ' 2150900120086 ' );Antwort
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
} Sie können den AWB im ZPL-Format (Zebra Programming Language) zur Verwendung mit einem Etikettendrucker anfordern.
Bitte beachten Sie, dass Sie ZPL und PDF nicht gleichzeitig anfordern können. Durch die Verwendung von setZpl() wird die PDF-Option automatisch deaktiviert, sofern sie festgelegt ist.
Anfrage
$ request = new Fancourier Request PrintAwb ();
$ request
-> setZpl ( true )
-> setAwb ( ' 2150900120086 ' );Antwort
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}Wenn Sie die AWB im HTML-Format möchten, verwenden Sie einfach ->setPdf(false), um HTML-Daten anstelle von PDF zu erhalten.
Anfrage
$ request = new Fancourier Request PrintAwb ();
$ request
-> setPdf ( false )
-> setAwb ( ' 2150900120086 ' );Antwort
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}Anfrage
$ request = new Fancourier Request DeleteAwb ();
$ request -> setAwb ( ' 2150900120086 ' );Antwort
$ response = $ fan -> deleteAwb ( $ request );
if ( $ response -> isOk ()) {
var_dump ( $ response -> getData ());
} else {
var_dump ( $ response -> getErrorMessage ());
}fancourier api ist eine Open-Source-Software, die unter der MIT-Lizenz lizenziert ist.