Versi perpustakaan ini dirancang untuk fancourier api v2.0 (tanggapan berbasis JSON). Kode berfungsi dan ada contoh untuk semua permintaan API, namun dokumentasinya belum siap.
Semua permintaan memiliki metode getData()
yang mengembalikan respons API yang belum diproses. Fungsi tambahan bergantung pada tipe objek respons untuk mengembalikan data yang diproses.
CATATAN Saat ini dirancang untuk bekerja dengan PHP 7.0 dan yang lebih baru.
Namun, rencananya adalah menambahkan deklarasi tipe dan tipe kembalian untuk semua fungsi yang akan mendorong persyaratan minimal ke PHP 8.1
Memerlukan paket melalui composer
composer require shusaura85/fancourier-api
Jika digunakan tanpa composer, Anda perlu meminta file autoload.php
secara manual
require_once ' /path/to/fancourier-api/src/autoload.php ' ;
Saat ini dokumentasi yang lengkap dan tepat belum tersedia. Namun, ada contoh untuk setiap jenis permintaan yang dapat Anda buat.
Di dalamnya Anda juga akan menemukan komentar dengan daftar fungsi lengkap untuk setiap request
, response
, dan object
.
Buat instance baru dari Fancourier.php
yang menyediakan client_id
, username
, password
dan 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 );
Atau Anda dapat menggunakan metode statis contoh pengujian:
$ fan = Fancourier Fancourier:: testInstance ( $ token );
Token yang dihasilkan memiliki masa hidup 24 jam dan harus disegarkan setelah periode ini. Anda bisa mendapatkan token yang dihasilkan menggunakan fungsi:
$force_refresh = false;
$token = $fan->getToken($force_refresh);
Jika token yang ditentukan kosong saat membuat instance, token tersebut akan dibuat secara otomatis pada permintaan pertama.
Meminta
$ request = new Fancourier Request GetCosts ();
$ request
-> setParcels ( 1 )
-> setWeight ( 1 )
-> setCounty ( ' Arad ' )
-> setCity ( ' Aciuta ' )
-> setDeclaredValue ( 125 );
Tanggapan
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 ());
}
Meminta
$ 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 );
Tanggapan
$ 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 ());
}
Berbeda dengan versi sebelumnya, tidak ada lagi permintaan CreateAwbBulk. Cukup buat objek AWBIntern sebanyak-banyaknya dan tambahkan ke permintaan
Meminta
$ 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 );
Tanggapan
$ 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 ());
}
Meminta
$ request = new Fancourier Request TrackAwb ();
$ request
-> setAwb ( ' 2150900120086 ' );
Tanggapan
$ 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 ());
}
Tidak seperti versi sebelumnya, Anda dapat menggunakan objek TrackAwb() yang sama dan menambahkan AWB sebanyak yang Anda perlukan ke Track
Meminta
$ request = new Fancourier Request TrackAwb ();
$ request
-> addAwb ( ' 2150900120084 ' )
-> addAwb ( ' 2150900120085 ' )
-> addAwb ( ' 2150900120086 ' );
Tanggapan
$ 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 ());
}
Anda kini dapat dengan mudah mendapatkan informasi tentang lokasi FANBox dan PayPoint yang tersedia. FAN Courier memanggil ke sana PUDO (Pick Up Drop Off).
Saat membuat AWB untuknya, setel alamat ke alamat PUDO seperti yang diterima di sini serta panggil fungsi setPickupLocation(PUDO_ID)
dengan ID PUDO yang dipilih.
Meminta
$ request = new Fancourier Request GetPudo ();
$ request
-> setType ( Fancourier Request GetPudo:: PUDO_FANBOX );
Tanggapan
$ 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 ());
}
Permintaan cetak dapat mencetak satu atau lebih AWB menggunakan satu permintaan.
Anda dapat menentukan ukuran AWB menggunakan fungsi ->setSize()
. Pilihan yang tersedia adalah: kosong , A4 , A5 dan A6 . A6 hanya dapat digunakan dengan opsi ePod.
Pencetakan PDF adalah mode pencetakan default.
Harap diperhatikan bahwa Anda tidak dapat meminta ZPL dan PDF secara bersamaan. Menggunakan setPdf()
akan secara otomatis menonaktifkan opsi ZPL jika disetel.
Meminta
$ request = new Fancourier Request PrintAwb ();
$ request
-> setPdf ( true )
-> setAwb ( ' 2150900120086 ' );
Tanggapan
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}
Anda dapat meminta AWB dalam format ZPL (Zebra Programming Language) untuk digunakan dengan printer label.
Harap diperhatikan bahwa Anda tidak dapat meminta ZPL dan PDF secara bersamaan. Menggunakan setZpl()
akan secara otomatis menonaktifkan opsi PDF jika disetel.
Meminta
$ request = new Fancourier Request PrintAwb ();
$ request
-> setZpl ( true )
-> setAwb ( ' 2150900120086 ' );
Tanggapan
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}
Jika Anda ingin AWB dalam format HTML, cukup gunakan ->setPdf(false) untuk mendapatkan data HTML, bukan PDF.
Meminta
$ request = new Fancourier Request PrintAwb ();
$ request
-> setPdf ( false )
-> setAwb ( ' 2150900120086 ' );
Tanggapan
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}
Meminta
$ request = new Fancourier Request DeleteAwb ();
$ request -> setAwb ( ' 2150900120086 ' );
Tanggapan
$ response = $ fan -> deleteAwb ( $ request );
if ( $ response -> isOk ()) {
var_dump ( $ response -> getData ());
} else {
var_dump ( $ response -> getErrorMessage ());
}
fancourier api adalah perangkat lunak sumber terbuka yang dilisensikan di bawah lisensi MIT.