tsukasa / fan-courier-api-client
Fan Courier API 客户端
Requires
- php: >=7.0
- ext-curl: *
- php-curl-class/php-curl-class: ^7.1
Requires (Dev)
- phpunit/phpunit: ^9.1
README
Fan Courier API 客户端库
许可 MIT
FanCourier API 客户端
作为库开发,易于集成到其他项目中。
安装
通过 Composer 安装包。
在终端运行 Composer require 命令
composer require infifni/fan-courier-api-client
现在您已经准备好开始在您的应用程序中使用 FanCourier API 客户端。
概述
查看以下主题以了解更多关于 FanCourier API 客户端的信息。
用法
解释
// default values for testing purposes $clientId = '7032158'; $username = 'clienttest'; $password = 'testing'; // for all the methods available you can see the request params // in the associated class // e.g. use Infifni\FanCourierApiClient\Client; (new Client($clientId, $username, $password))->city(); // now check \Infifni\FanCourierApiClient\Request\City::getFieldRules // to understand what params are required and which are optional
查看 phpunit 测试,以深入了解库的工作方式。FanCourier API 客户端库为您提供以下方法来使用
city 方法
根据县和语言检索城市。
city()
方法将返回一个对象数组,包含:judet, localitate, agentie, km, cod_rutare, id_localitate_fan。如果指定了英文语言,则这些键将被翻译。
// examples use Infifni\FanCourierApiClient\Client; use Infifni\FanCourierApiClient\Request\City; // to fetch specific county (new Client('7032158', 'clienttest', 'testing')) ->city([ 'judet' => 'Constanta', // optional 'language' => City::LANGUAGE_RO_ALLOWED_VALUE // optional ]); // or to fetch all cities (new Client('7032158', 'clienttest', 'testing')) ->city();
streets 方法
根据县、城市和语言检索街道。
streets()
方法将返回一个对象数组,包含以下键:judet, localitate, strada, de_la, pana_la, paritate, cod_postal, tip, cod_cartare, numar_depozite。如果指定了英文语言,则这些键将被翻译。
use Infifni\FanCourierApiClient\Client; use Infifni\FanCourierApiClient\Request\Streets; // To fetch specific county (new Client('7032158', 'clienttest', 'testing')) ->streets([ 'judet' => 'Bucuresti', // optional 'localitate' => 'Bucuresti', // optional 'language' => Streets::LANGUAGE_RO_ALLOWED_VALUE // optional ]); // or to fetch all streets from Romania (new Client('7032158', 'clienttest', 'testing')) ->streets();
price 方法
根据服务、包裹、距离和其他参数检索价格。
price()
方法将返回一个双精度值(标准服务)或一个 json 字符串(出口服务)。
use Infifni\FanCourierApiClient\Client; use Infifni\FanCourierApiClient\Request\Price; // standard service (new Client('7032158', 'clienttest', 'testing')) ->price([ 'serviciu' => Price::SERVICE_ALLOWED_VALUES['standard'], 'localitate_dest' => 'Targu Mures', 'judet_dest' => 'Mures', 'plicuri' => 1, 'colete' => 2, 'greutate' => 5, 'lungime' => 10, 'latime' => 10, 'inaltime' => 10, 'val_decl' => 600, 'plata_ramburs' => Price::SENDER_ALLOWED_VALUE, 'plata_la' => Price::RECIPIENT_ALLOWED_VALUE ]); // export service (new Client('7032158', 'clienttest', 'testing')) ->price([ 'serviciu' => Price::SERVICE_ALLOWED_VALUES['export'], 'modtrim' => Price::SEND_MODE_BY_AIR_ALLOWED_VALUE, 'greutate' => 10.22, 'pliccolet' => 3, 's_inaltime' => 50, 's_latime' => 67, 's_lungime' => 48, 'volum' => 400, 'dest_tara' => 'Bulgaria', 'tipcontinut' => 1, 'km_ext' => 400, 'plata_la' => Price::RECIPIENT_ALLOWED_VALUE ]);
trackAwbMethod
使用 AWB 码跟踪运输。
trackAwb()
方法将返回纯文本。
use Infifni\FanCourierApiClient\Client; use Infifni\FanCourierApiClient\Request\TrackAwb; (new Client('7032158', 'clienttest', 'testing')) ->trackAwb([ 'AWB' => '2337600120003', // required 'display_mode' => TrackAwb::DISPLAY_MODE_ALL_ALLOWED_VALUE, // required 'language' => TrackAwb::LANGUAGE_RO_ALLOWED_VALUE // optional ]);
generateAwb 方法
发送订单以生成 AWB
generateAwb()
方法将返回一个对象数组,包含:line, awb, send_params, error_message。
use Infifni\FanCourierApiClient\Client; use Infifni\FanCourierApiClient\Request\GenerateAwb; (new Client('7032158', 'clienttest', 'testing')) ->generateAwb([ 'fisier' => [ [ 'tip_serviciu' => GenerateAwb::SERVICE_ALLOWED_VALUES['standard'], 'banca' => '', 'iban' => '', 'nr_plicuri' => 1, 'nr_colete' => 0, 'greutate' => 1, 'plata_expeditie' => 'ramburs', 'ramburs_bani' => 100, 'plata_ramburs_la' => GenerateAwb::RECIPIENT_ALLOWED_VALUE, 'valoare_declarata' => 400, 'persoana_contact_expeditor' => 'Test User', 'observatii' => 'Lorem ipsum', 'continut' => '', 'nume_destinar' => 'Test', 'persoana_contact' => 'Test', 'telefon' => '123456789', 'fax' => '123456789', 'email' => 'example@example.com', 'judet' => 'Galati', 'localitate' => 'Tecuci', 'strada' => 'Lorem', 'nr' => '2', 'cod_postal' => '123456', 'bl' => '', 'scara' => '', 'etaj' => '', 'apartament' => '', 'inaltime_pachet' => '', 'lungime_pachet' => '', 'restituire' => '', 'centru_cost' => '', 'optiuni' => '', 'packing' => '', 'date_personale' => '' ], [ 'tip_serviciu' => GenerateAwb::SERVICE_ALLOWED_VALUES['collector_account'], 'banca' => 'Test', 'iban' => 'XXXXXX', 'nr_plicuri' => 0, 'nr_colete' => 1, 'greutate' => 1, 'plata_expeditie' => 'ramburs', 'ramburs_bani' => 400, 'plata_ramburs_la' => GenerateAwb::RECIPIENT_ALLOWED_VALUE, 'valoare_declarata' => 400, 'persoana_contact_expeditor' => 'Test User', 'observatii' => 'Lorem ipsum', 'continut' => 'Fragil', 'nume_destinar' => 'Test', 'persoana_contact' => 'Test', 'telefon' => '123456789', 'fax' => '123456789', 'email' => 'example@example.com', 'judet' => 'Galati', 'localitate' => 'Tecuci', 'strada' => 'Lorem', 'nr' => '2', 'cod_postal' => '123456', 'bl' => '', 'scara' => '', 'etaj' => '', 'apartament' => '', 'inaltime_pachet' => '', 'lungime_pachet' => '', 'restituire' => '', 'centru_cost' => '', 'optiuni' => '', 'packing' => '', 'date_personale' => '' ] ]]);
order 方法
向 FanCourier 代理商下单。代理商将在请求的小时当天取走包裹。
如果请求成功,order()
方法将返回一个纯文本消息
use Infifni\FanCourierApiClient\Client; (new Client('7032158', 'clienttest', 'testing')) ->order([ 'nr_colete' => 1, 'pers_contact' => 'Test', 'tel' => 123456789, 'email' => 'example@example.com', 'greutate' => 1, 'inaltime' => 10, 'lungime' => 10, 'latime' => 10, 'ora_ridicare' => '18:00', 'observatii' => '', 'client_exp' => 'Test', 'strada' => 'Test', 'nr' => 1, 'bloc' => 2, 'scara' => 3, 'etaj' => 7, 'ap' => 78, 'localitate' => 'Constanta', 'judet' => 'Constanta', ]);
exportAwbErrors 方法
所有带错误的 FanCourier AWB。
exportAwbErrors()
方法将返回一个空数组或包含以下对象的数组:nume, judet, localitate, telefon, plicuri, colete, greutate, descriere。
use Infifni\FanCourierApiClient\Client; (new Client('7032158', 'clienttest', 'testing')) ->exportAwbErrors();
deleteAwb 方法
仅当发货过程未完成时才删除 AWB。
如果请求成功,deleteAwb()
方法将返回一个整数(已删除的 AWB 号码)或错误消息。
use Infifni\FanCourierApiClient\Client; (new Client('7032158', 'clienttest', 'testing')) ->deleteAwb([ 'AWB' => '2337600120003' ]);
getAwb 方法
返回包含运输详细信息的文件。
如果请求成功,getAwb()
方法将返回一个包含可打印文件的 html 页面,或者返回错误消息。
use Infifni\FanCourierApiClient\Client; use Infifni\FanCourierApiClient\Request\GetAwb; (new Client('7032158', 'clienttest', 'testing')) ->getAwb([ 'nr' => '2337600120003', 'page' => GetAwb::PAGE_A4_ALLOWED_VALUE, 'ln' => GetAwb::LANGUAGE_RO_ALLOWED_VALUE ]);
downloadAwb 方法
以 jpg 格式返回 AWB 文档。
如果请求成功,downloadAwb()
方法将返回一个 jpg 或错误消息。
use Infifni\FanCourierApiClient\Client; use Infifni\FanCourierApiClient\Request\DownloadAwb; (new Client('7032158', 'clienttest', 'testing')) ->downloadAwb([ 'AWB'=>'2337600120003', 'language' => DownloadAwb::LANGUAGE_RO_ALLOWED_VALUE ]);
exportOrders 方法
通过 order 方法在选定日期内创建的所有订单。
exportOrders()
方法将返回一个空数组或包含以下对象的数组:nr._crt., data_ridicare_comanda, ora_de_la, ora_pana_la, persoana_contact, telefon, email, colete, numar_comanda, status。
use Infifni\FanCourierApiClient\Client; use Infifni\FanCourierApiClient\Request\ExportOrders; (new Client('7032158', 'clienttest', 'testing')) ->exportOrders([ 'data' => '22.05.2020', 'language' => ExportOrders::LANGUAGE_RO_ALLOWED_VALUE ]);
exportBordereau 方法
通过 generateAwb 方法在选定日期内创建的所有订单。
exportBordereau()
方法将返回一个空数组或包含以下对象的数组:nr._crt., awb, ridicat, status, data_confirmarii, restituire, tip_serviciu, continut...
use Infifni\FanCourierApiClient\Client; use Infifni\FanCourierApiClient\Request\ExportBordereau; (new Client('7032158', 'clienttest', 'testing')) ->exportBordereau([ 'data' => '22.05.2020', 'language' => ExportBordereau::LANGUAGE_RO_ALLOWED_VALUE, 'mode' => ExportBordereau::MODE_ALL_ALLOWED_VALUE ]);
exportReports 方法
返回所有在选定日期内将总金额存入存款账户的银行转账的所有探险。
exportReports()
方法将返回一个空数组或包含以下对象的对象:oras_destinatar, dat_awb, suma_incasata, numar_awb, numar_awb, expeditor, destinatar, continut, persoanaD, data_virament, persoanaE, ramburs_la_awb, awb_retur
use Infifni\FanCourierApiClient\Client; use Infifni\FanCourierApiClient\Request\ExportReports; (new Client('7032158', 'clienttest', 'testing')) ->exportReports([ 'data' => '22.05.2020', 'language' => ExportReports::LANGUAGE_RO_ALLOWED_VALUE ]);
exportObservations方法
返回在请求探险时可以设置的所有观察。
exportObservations()
方法将返回一个空数组或包含以下对象的对象:observatii_fan_courier
use Infifni\FanCourierApiClient\Client; (new Client('7032158', 'clienttest', 'testing')) ->exportObservations();
endBordereau方法
将关闭当前日期所做的所有订单。
endBordereau()
方法将返回HTML。
use Infifni\FanCourierApiClient\Client; (new Client('7032158', 'clienttest', 'testing')) ->endBordereau();
异常
如果发生错误,FanCourier包将抛出异常。这样,使用FanCourier包调试代码或根据异常类型处理错误就更容易了。FanCourier包可以抛出以下异常