이 버전의 라이브러리는 fancourier api v2.0(JSON 기반 응답)용으로 설계되었습니다. 코드는 작동하고 모든 API 요청에 대한 예제가 있지만 문서는 아직 준비되지 않았습니다.
모든 요청에는 API의 처리되지 않은 응답을 반환하는 getData()
메서드가 있습니다. 추가 함수는 응답 개체 유형에 따라 처리된 데이터를 반환합니다.
참고 현재는 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
에 대한 전체 기능 목록이 포함된 주석도 있습니다.
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 ());
}
인쇄 요청은 단일 요청을 사용하여 하나 이상의 AWB를 인쇄할 수 있습니다.
->setSize()
함수를 사용하여 AWB의 크기를 지정할 수 있습니다. 사용 가능한 옵션은 비어 있음 , 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 라이선스에 따라 라이선스가 부여된 오픈 소스 소프트웨어입니다.