このバージョンのライブラリは、 fancourier api v2.0 (JSON ベースの応答) 用に設計されています。コードは機能し、すべての API リクエストの例がありますが、ドキュメントはまだ準備ができていません。
すべてのリクエストには、API の未処理の応答を返すメソッドgetData()があります。追加の関数は、処理されたデータを返す応答オブジェクトのタイプに応じて異なります。
注現時点では、PHP 7.0 以降で動作するように設計されています。
ただし、計画では、要件を少なくとも PHP 8.1 に引き上げるすべての関数の型と戻り型の宣言を追加する予定です。
Composer 経由でパッケージを要求する
composer require shusaura85/fancourier-apiComposer なしで使用する場合は、 autoload.phpファイルを手動で要求する必要があります。
require_once ' /path/to/fancourier-api/src/autoload.php ' ;現時点では、完全かつ適切なドキュメントはまだ入手できません。ただし、作成できるすべてのリクエスト タイプの例があります。
その中には、各request 、 response 、 objectの完全な関数リストを含むコメントもあります。
client_id 、 username 、 password 、およびtoken指定して、 Fancourier.phpの新しいインスタンスを作成します。
$ 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 );または、テスト インスタンスの静的メソッドを使用することもできます。
$ fan = Fancourier Fancourier:: testInstance ( $ token );生成されたトークンの有効期間は 24 時間で、この期間が経過したら更新する必要があります。生成されたトークンは、次の関数を使用して取得できます。
$force_refresh = false;
$token = $fan->getToken($force_refresh);
インスタンスの作成時に指定されたトークンが空の場合、最初のリクエストで自動的に生成されます。
リクエスト
$ request = new Fancourier Request GetCosts ();
$ request
-> setParcels ( 1 )
-> setWeight ( 1 )
-> setCounty ( ' Arad ' )
-> setCity ( ' Aciuta ' )
-> setDeclaredValue ( 125 );応答
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 ());
}リクエスト
$ 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 );応答
$ 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 ());
}以前のバージョンとは異なり、CreateAwbBulk リクエストはなくなりました。必要なだけ AWBIntern オブジェクトを作成し、リクエストに追加するだけです。
リクエスト
$ 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 );応答
$ 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 ());
}リクエスト
$ request = new Fancourier Request TrackAwb ();
$ request
-> setAwb ( ' 2150900120086 ' );応答
$ 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 ());
}以前のバージョンとは異なり、同じ TrackAwb() オブジェクトを使用して、トラッキングに必要な数の AWB を追加できます。
リクエスト
$ request = new Fancourier Request TrackAwb ();
$ request
-> addAwb ( ' 2150900120084 ' )
-> addAwb ( ' 2150900120085 ' )
-> addAwb ( ' 2150900120086 ' );応答
$ 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 ());
}利用可能な FANBox および PayPoint の場所に関する情報を簡単に取得できるようになりました。 FAN CourierはそこにPUDO(Pick Up Drop Off)を呼び出します。
それらの AWB を作成するときは、ここで受け取った PUDO アドレスにアドレスを設定し、選択した PUDO の ID で関数setPickupLocation(PUDO_ID)を呼び出します。
リクエスト
$ request = new Fancourier Request GetPudo ();
$ request
-> setType ( Fancourier Request GetPudo:: PUDO_FANBOX );応答
$ 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 ());
}印刷リクエストでは、1 つのリクエストを使用して 1 つ以上の AWB を印刷できます。
->setSize()関数を使用して AWB のサイズを指定できます。使用可能なオプションは次のとおりです: empty 、 A4 、 A5 、およびA6 。 A6 はePod オプションでのみ使用できます。
PDF 印刷はデフォルトの印刷モードです。
ZPL と PDF を同時にリクエストすることはできないことに注意してください。 setPdf()使用すると、ZPL オプションが設定されている場合は自動的に無効になります。
リクエスト
$ request = new Fancourier Request PrintAwb ();
$ request
-> setPdf ( true )
-> setAwb ( ' 2150900120086 ' );応答
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}ラベル プリンターで使用するために、ZPL 形式 (Zebra プログラミング言語) の AWB を要求できます。
ZPL と PDF を同時にリクエストすることはできないことに注意してください。 setZpl()使用すると、PDF オプションが設定されている場合は自動的に無効になります。
リクエスト
$ request = new Fancourier Request PrintAwb ();
$ request
-> setZpl ( true )
-> setAwb ( ' 2150900120086 ' );応答
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}AWB を HTML 形式で取得したい場合は、->setPdf(false) を使用して PDF の代わりに HTML データを取得します。
リクエスト
$ request = new Fancourier Request PrintAwb ();
$ request
-> setPdf ( false )
-> setAwb ( ' 2150900120086 ' );応答
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}リクエスト
$ request = new Fancourier Request DeleteAwb ();
$ request -> setAwb ( ' 2150900120086 ' );応答
$ response = $ fan -> deleteAwb ( $ request );
if ( $ response -> isOk ()) {
var_dump ( $ response -> getData ());
} else {
var_dump ( $ response -> getErrorMessage ());
}fancourier api MIT ライセンスに基づいてライセンスされたオープンソース ソフトウェアです。