vanthao03596/laravel-ghtk

这是我创建的包 LaravelGhtk

0.0.1 2021-07-19 14:26 UTC

This package is auto-updated.

Last update: 2024-09-20 07:52:47 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

要获取最新版本,只需使用 Composer 需求此项目。您需要安装任何提供 psr/http-client-implementationpsr/http-factory-implementation 的包。大多数用户会想要

例如,要使用 Guzzle 7

$ composer require "vanthao03596/laravel-ghtk" "guzzlehttp/guzzle:^7.2" "http-interop/http-factory-guzzle:^1.1.0"

安装后,如果您没有使用自动包发现,则需要将 Vanthao03596\LaravelGhtk\GhtkServiceProvider 服务提供者注册到您的 config/app.php 文件中。

您还可以选择性地为我们的外观

        'Ghtk' => Vanthao03596\LaravelGhtk\Facades\Ghtk::class,

配置

Laravel GHTK 需要连接配置。

要开始,您需要发布所有供应商资产

$ php artisan vendor:publish

这将创建一个您可以在其中修改以设置配置的 config/ghtk.php 文件。另外,请确保检查此包中原始配置文件之间的更改。

有两个配置选项

默认连接名称

此选项('default')是您指定以下哪个连接作为您所有工作的默认连接的地方。当然,您可以使用管理器类同时使用多个连接。此设置的默认值是 'main'

Ghtk 连接

此选项('connections')是您为应用程序设置的每个连接。已包括示例配置,但您可以添加您想要的任何数量的连接。

用法

GhtkManager

这是最有趣的类。它绑定到 ioc 容器为 'ghtk',并可以使用 Facades\Ghtk 外观访问。该类通过扩展 AbstractManager 实现 ManagerInterface。接口和抽象类都是我 Laravel Manager 包的一部分,因此您可能想去查看有关如何使用管理器类的文档在这个存储库中。请注意,返回的连接类始终是 Vanthao03596\GhtkSdk\Client 的实例。

Facades\Ghtk

此外观将动态地将静态方法调用传递到 ioc 容器中的 'ghtk' 对象,默认情况下是 GhtkManager 类。

GhtkServiceProvider

此类不包含任何有趣的公共方法。应将此类添加到 config/app.php 中的提供者数组。此类将设置 ioc 绑定。

实际示例

在这里,您可以看到如何使用此包的示例。默认情况下,默认适配器是 main。在配置文件中输入您的认证详细信息后,它就会正常工作

use Vanthao03596\LaravelGhtk\Facades\Ghtk;
// you can alias this in config/app.php if you like

Ghtk::shipment()
    ->calculateFee([
        'pick_province' => 'Hà Nội',
        'pick_district' => 'Quận Hai Bà Trưng',
        'province' => 'Hà nội',
        'district' => 'Quận Cầu Giấy',
        'address' => 'P.503 tòa nhà Auu Việt, số 1 Lê Đức Thọ',
        'weight' => 1000,
        'value' => 3000000,
        'transport' => 'fly',
        'deliver_option' => 'xteam',
        'tags'  => [1]
    ]);
// we're done here - how easy was that, it just works!

Ghtk::order()->createOrder([
    'products' => [
        [
            'name' => 'bút',
            'weight' => 0.1,
            'quantity' => 1,
            'product_code' => '23304A3MHLMVMXX625'
        ],
        [
            'name' => 'tẩy',
            'weight' => 0.2,
            'quantity' => 1,
            'product_code' => ''
        ]
    ],
    'order' => [
        'id' => 'a9',
        'pick_name' => 'HCM-nội thành',
        'pick_address' => '590 CMT8 P.11',
        'pick_province' => 'TP. Hồ Chí Minh',
        'pick_district' => 'Quận 3',
        'pick_ward' => 'Phường 1',
        'pick_tel' => '0911222333',
        'tel' => '0911222333',
        'name' => 'GHTK - HCM - Noi Thanh',
        'address' => '123 nguyễn chí thanh',
        'province' => 'TP. Hồ Chí Minh',
        'district' => 'Quận 1',
        'ward' => 'Phường Bến Nghé',
        'hamlet' => 'Khác',
        'is_freeship' => 1,
        'pick_date' => '2016-09-30',
        'pick_money' => 47000,
        'note' => 'Khối lượng tính cước tối đa: 1.00 kg',
        'value' => 3000000,
        'transport' => 'fly',
        'pick_option' =>'cod',
        'deliver_option' => 'xteam',
        'pick_session' => '2',
        'tags' => [ 1],
        'email' => 'thao@123.com',
        'use_return_address' => 1
    ]
]);
// this example is simple, and there are far more methods available

ghtk 管理器将表现得像 Vanthao03596\GhtkSdk\Client 类。如果您想调用特定的连接,可以使用 connection 方法

use Vanthao03596\LaravelGhtk\Facades\Ghtk;

// select the your_connection_name connection, then get going
Ghtk::connection('your_connection_name')shipment()
    ->calculateFee([
        'pick_province' => 'Hà Nội',
        'pick_district' => 'Quận Hai Bà Trưng',
        'province' => 'Hà nội',
        'district' => 'Quận Cầu Giấy',
        'address' => 'P.503 tòa nhà Auu Việt, số 1 Lê Đức Thọ',
        'weight' => 1000,
        'value' => 3000000,
        'transport' => 'fly',
        'deliver_option' => 'xteam',
        'tags'  => [1]
    ]);

考虑到这一点,请注意

use Vanthao03596\LaravelGhtk\Facades\Ghtk;

// writing this:
Ghtk::connection('main')->order()->checkStatus('S1.A1.17373471');

// is identical to writing this:
Ghtk::order()->checkStatus('S1.A1.17373471');

// and is also identical to writing this:
Ghtk::connection()->order()->checkStatus('S1.A1.17373471');

// this is because the main connection is configured to be the default
Ghtk::getDefaultConnection(); // this will return main

// we can change the default connection
Ghtk::setDefaultConnection('alternative'); // the default is now alternative

如果您像我一样更喜欢使用依赖注入而不是外观,则可以轻松地将管理器注入如下

use Vanthao03596\LaravelGhtk\GhtkManager;
use Illuminate\Support\Facades\App; // you probably have this aliased already

class Foo
{
    protected $ghtk;

    public function __construct(GhtkManager $ghtk)
    {
        $this->ghtk = $ghtk;
    }

    public function bar()
    {
        $this->ghtk->order()->checkStatus('S1.A1.17373471');
    }
}

App::make('Foo')->bar();

有关如何使用我们幕后调用的 Vanthao03596\GhtkSdk\Client 类的更多信息,请参阅https://github.com/vanthao03596/ghtk-sdk 上的文档,以及https://github.com/GrahamCampbell/Laravel-Manager#usage 上的管理类。

测试

composer test

变更日志

有关最近更改的详细信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

安全漏洞

请查阅我们的安全策略了解如何报告安全漏洞。

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件