aniket-in/laravel-shiprocket

Laravel 的 Shiprocket API 包装器

0.0.2 2022-05-02 12:05 UTC

This package is auto-updated.

Last update: 2024-09-08 22:13:58 UTC


README

Laravel 的 Shiprocket API 包装器

目录

  1. 功能
  2. 安装
  3. 导入
  4. 身份验证
  5. 响应
  6. 用法
    1. 订单
    2. 快递
    3. 退货订单
    4. 发货
    5. 跟踪
    6. 取货地址
    7. 钱包
    8. 产品

功能

  • 与 Shiprocket API 保持最新
  • 完全可定制
  • 简单一行代码
  • 令牌缓存
  • 响应支持任何数据类型

安装

您可以通过 composer 安装此包

  composer require aniket-in/shiprocket-laravel

您可以使用以下命令发布配置文件

  php artisan vendor:publish --provider="AniketIN\Shiprocket\ShiprocketServiceProvider" --tag="shiprocket-config"

这是已发布配置文件的内容

return [

    /*
    |--------------------------------------------------------------------------
    | Shiprocket Credentilas
    |--------------------------------------------------------------------------
    |
    | Here you can set multiple shiprocket credentilas pair.
    | And then use any credential pair by their key i.e. default, second 
    | 
    */

    'credentials' => [
        'default' => [
            'email' => env('SHIPROCKET_EMAIL', 'example@email.com'),
            'password' => env('SHIPROCKET_PASSWORD', 'password'),
        ],
        // 'second' => [
        //     'email' => env('SHIPROCKET_SECOND_EMAIL', 'example@email.com'),
        //     'password' => env('SHIPROCKET_SECOND_PASSWORD', 'password'),
        // ],
    ],

    
     /*
    |--------------------------------------------------------------------------
    | Shiprocket Credentilas
    |--------------------------------------------------------------------------
    |
    | Here you can set the default credentilas to use by their key.
    | i.e. default, second 
    | 
    */

    'default_credentials' => env('SHIPROCKET_DEFAULT_CREDENTIALS', 'default'),


     /*
    |--------------------------------------------------------------------------
    | Shiprocket Credentilas
    |--------------------------------------------------------------------------
    |
    | Here you can set the behaviour whether to use caching or not for auth tokens.
    | 
    */
    'token_cache' => env('SHIPROCKET_TOKEN_CACHE', true),



    /*
    |--------------------------------------------------------------------------
    | Token Cache Expiry Duration
    |--------------------------------------------------------------------------
    |
    | Here you can set token's cache expiry duration
    | 
    */
    'token_cache_duration' => env('SHIPROCKET_TOKEN_CACHE_DURATION', 86400),

];

导入

要使用此包的方法,请像这样在控制器顶部导入 Facade

use AniketIN\Shiprocket\Facades\Shiprocket;

身份验证

使用此包处理身份验证,您只需在 config/shiprocket.php 文件中设置 Shiprocket 凭据即可。

您也可以在配置文件中将 token 缓存 设置为 true。这将通过缓存 token 而不是每次请求都生成新的 token 来节省大量时间。此外,缓存时长 也可以自定义。

然而,如果您只想获取 token

Shiprocket::getToken();

此外,如果您想使用除默认凭据之外的凭据,则

Shiprocket::withCredential('another-credential-key')->nowCallYourMethod(...);

响应

要获取 API 返回的响应,您可以使用 Laravel 提供的任何方法,例如

Shiprocket::order()->all()->json();

所有可用方法

$response->body() : string;
$response->json($key = null) : array|mixed;
$response->object() : object;
$response->collect($key = null) : Illuminate\Support\Collection;
$response->status() : int;
$response->ok() : bool;
$response->successful() : bool;
$response->redirect(): bool;
$response->failed() : bool;
$response->serverError() : bool;
$response->clientError() : bool;
$response->header($header) : string;
$response->headers() : array;

有关更多信息,请参阅 https://laravel.net.cn/docs/9.x/http-client#making-requests

订单

创建自定义订单

https://apidocs.shiprocket.in/#247e58f3-37f3-4dfb-a4bb-b8f6ab6d41ec

Shiprocket::order()->create([
    // refer above url for required parameters...
])

创建特定渠道的订单

https://apidocs.shiprocket.in/#45126d19-74ed-4cf5-9447-8ac1041bbb3c

Shiprocket::order()->createChannelSpecific([
    // refer above url for required parameters...
])

更改/更新已创建订单的取货位置

https://apidocs.shiprocket.in/#4ba045ab-e25b-4bb1-adbd-37bbd07b354e

Shiprocket::order()->updatePickupAddress([
    // refer above url for required parameters...
])

更新客户送货地址

https://apidocs.shiprocket.in/#f98ea72a-2efb-4bbc-a4bb-f4dd7e15618a

Shiprocket::order()->updateCustomerAddress([
    // refer above url for required parameters...
])

更新订单

https://apidocs.shiprocket.in/#f08900fe-ea38-485d-b50c-3ec2fbc5644a

Shiprocket::order()->update([
    // refer above url for required parameters...
])

取消订单

https://apidocs.shiprocket.in/#5c0e41ca-d868-44c4-8ddb-73a8de239401

Shiprocket::order()->cancelByIds([ 
    // order ids... 
])

获取所有订单

https://apidocs.shiprocket.in/#d4f48023-b0b2-40af-8072-1adf97227d21

Shiprocket::order()->all([ 
    // refer above url for required parameters...
])

获取特定订单详情

https://apidocs.shiprocket.in/#aa23cc40-6ee8-4ce0-b0ab-1a7291514299

Shiprocket::order()->detailsById($orderId)

快递

为发货生成 AWB

https://apidocs.shiprocket.in/#b267ca9a-f7aa-4edc-8477-7dc15e46e08a

Shiprocket::courier()->generateAwbForShipment([
    // refer above url for required parameters...
])

快递列表

https://apidocs.shiprocket.in/#ce08883d-5782-4523-a425-919d10b27536

Shiprocket::courier()->list([
    // refer above url for required parameters...
])

检查快递服务可行性

https://apidocs.shiprocket.in/#29ff5116-0917-41ba-8c82-638412604916

Shiprocket::courier()->serviceability([
    // refer above url for required parameters...
])

检查国际快递服务可行性

https://apidocs.shiprocket.in/#6d1f2fb0-43c1-434f-8c93-50674a0b59ef

Shiprocket::courier()->internationalServiceability([
    // refer above url for required parameters...
])

请求发货取货

https://apidocs.shiprocket.in/#9f42cdfd-a055-4934-a0f4-86764f87c80d

Shiprocket::courier()->requestShipmentPickup([
    // refer above url for required parameters...
])

退货订单

创建退货订单

https://apidocs.shiprocket.in/#81b2135b-d43c-4002-8f7f-a670aa5210fa

Shiprocket::return()->create([
    // refer above url for required parameters...
])

获取所有退货订单

https://apidocs.shiprocket.in/#a98c37b1-47ac-40b4-b80f-051611fe350e

Shiprocket::return()->all([
    // refer above url for required parameters...
])

发货

获取所有发货详情

https://apidocs.shiprocket.in/#a9913eaf-94ba-4012-a105-9687fddc7221

Shiprocket::shipment()->all([
    // refer above url for required parameters...
])

获取特定发货详情

https://apidocs.shiprocket.in/#5f9bced5-4f16-4868-be55-a8c0215d0711

Shiprocket::shipment()->detailsById($shipment_id)

通过 AWB 取消发货

https://apidocs.shiprocket.in/#659bb564-413a-4e4c-b866-ebe01d3f61dc

Shiprocket::shipment()->cancelByAWBs([123456, 7890123])

跟踪

通过 AWB 获取跟踪信息

https://apidocs.shiprocket.in/#f2ac0962-4c34-4fe4-8266-50f8a1e8eab0

Shiprocket::track()->awb($awb)

通过多个 AWB 获取跟踪数据

https://apidocs.shiprocket.in/#cf273e6a-08d0-4624-bf7a-7510c28292e0

Shiprocket::track()->multipleAwb($awb_array)

通过发货 ID 获取跟踪信息

https://apidocs.shiprocket.in/#89005f4f-2b2f-473d-95b0-f54665a16b42

Shiprocket::track()->shipment($shipment_id)

通过订单 ID 获取跟踪数据

https://apidocs.shiprocket.in/#bfcf3357-4e39-4134-831a-1ff33f67205e

Shiprocket::track()->order($order_id)

取货地址

获取所有取货位置

https://apidocs.shiprocket.in/#3bd67de6-8f00-435f-a708-c0c3ab252fee

Shiprocket::pickupAddress()->all()

添加新的取货位置

https://apidocs.shiprocket.in/#6fbe81f5-c3d5-462e-b18f-d6316dde7779

Shiprocket::pickupAddress()->create([
    // refer above url for required parameters...
])

钱包

获取钱包余额

https://apidocs.shiprocket.in/#341bd458-5d80-4978-8e30-13651be2a652

Shiprocket::wallet()->getBalance()

产品

获取所有产品

https://apidocs.shiprocket.in/#0b8d1f26-3abd-4f4e-9cd8-3928bcfcf30b

Shiprocket::product()->all([
    // refer above url for required parameters...
])

获取特定产品详情

https://apidocs.shiprocket.in/#134f7710-660c-464f-b579-6da46ba9402f

Shiprocket::product()->detailsById($product_id)

添加新产品

https://apidocs.shiprocket.in/#344b789d-584e-486a-a7a9-0cf33ce52bf3

Shiprocket::product()->create([
    // refer above url for required parameters...
])

作者

支持与反馈

如需支持或反馈,请发送邮件至 laravel-shiprocket@aniket.ind.in 或提出您的问题。