ไลบรารีเวอร์ชันนี้ออกแบบมาสำหรับ fancourier api v2.0 (การตอบกลับตาม JSON) โค้ดใช้งานได้และมีตัวอย่างสำหรับคำขอ API ทั้งหมด อย่างไรก็ตาม เอกสารยังไม่พร้อม
คำขอทั้งหมดมีเมธอด getData()
ที่ส่งคืนการตอบสนองที่ยังไม่ได้ประมวลผลของ API ฟังก์ชันเพิ่มเติมขึ้นอยู่กับประเภทออบเจ็กต์การตอบสนองเพื่อส่งคืนข้อมูลที่ประมวลผล
หมายเหตุ ในขณะนี้ได้รับการออกแบบให้ทำงานกับ PHP 7.0 และใหม่กว่า
อย่างไรก็ตาม แผนคือการเพิ่มการประกาศประเภทและประเภทการส่งคืนสำหรับฟังก์ชันทั้งหมดที่จะผลักดันข้อกำหนดเป็น PHP 8.1 เป็นอย่างน้อย
ต้องการแพ็คเกจผ่านผู้แต่ง
composer require shusaura85/fancourier-api
หากใช้โดยไม่มีผู้แต่ง คุณจะต้องขอไฟล์ autoload.php
ด้วยตนเอง
require_once ' /path/to/fancourier-api/src/autoload.php ' ;
ขณะนี้ยังไม่มีเอกสารที่ครบถ้วนและเหมาะสม อย่างไรก็ตาม มีตัวอย่างสำหรับคำขอทุกประเภทที่คุณสามารถทำได้
ภายในนั้น คุณยังจะพบความคิดเห็นพร้อมรายการฟังก์ชันที่สมบูรณ์สำหรับ request
response
และ object
แต่ละรายการ
สร้างอินสแตนซ์ใหม่ของ Fancourier.php
โดยระบุ client_id
username
password
และ 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 );
หรือคุณสามารถใช้วิธีการคงที่ของอินสแตนซ์ทดสอบ:
$ 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 ตามที่ได้รับที่นี่ รวมทั้งเรียกใช้ฟังก์ชัน setPickupLocation(PUDO_ID)
ด้วย ID ของ PUDO ที่เลือก
ขอ
$ 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 ());
}
คำขอพิมพ์สามารถพิมพ์ AWB หนึ่งรายการขึ้นไปโดยใช้คำขอเดียว
คุณสามารถระบุขนาดของ AWB ได้โดยใช้ฟังก์ชัน ->setSize()
ตัวเลือกที่ใช้ได้ ได้แก่: ว่างเปล่า , 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 ());
}
คุณสามารถขอ AWB ในรูปแบบ ZPL (Zebra Programming Language) เพื่อใช้กับเครื่องพิมพ์ฉลากได้
โปรดทราบว่าคุณไม่สามารถขอ 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) เพื่อรับข้อมูล HTML แทน PDF
ขอ
$ 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