infifni / fan-courier-api-client
FanCourier API 客户端
Requires
- php: >=7.0
- ext-curl: *
- php-curl-class/php-curl-class: ^7.1
Requires (Dev)
- phpunit/phpunit: ^9.1
README
FanCourier 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()
方法将返回一个 int(已删除的 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_ridirea_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 包可以抛出以下异常