infifni/fan-courier-api-client

FanCourier API 客户端

v1.0.5 2020-06-05 19:39 UTC

This package is auto-updated.

Last update: 2024-08-31 00:29:48 UTC


README

infifni logo

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 包可以抛出以下异常