annajeanine/instabox-php-client

v1.7 2022-06-08 15:31 UTC

This package is auto-updated.

Last update: 2024-09-30 01:30:27 UTC


README

Instabox API的非官方PHP客户端。更多关于Instabox的信息可以在https://instabox.io/找到。

关于Instabox API的完整文档可以在https://www.instadocs.se找到。请联系您的账户经理获取凭证。

安装

客户端可以通过composer轻松安装

composer require annajeanine/instabox-php-client

连接

使用您的客户端ID和客户端密钥初始化连接类。可选地,为开发目的,将沙箱变量设置为true。

$connection = new \Instabox\Connection('clientID', 'clientSecret', true);

连接对于Instabox接口是必需的,该接口处理哪些模型可以被初始化。

$instabox = new \Instabox\Instabox($connection);

创建订单实例

要创建订单,使用Instabox类。从这里初始化订单。

$order = $instabox->order();

设置订单的所有必要属性。有关必要属性,请参阅API文档。

订单模型有嵌套属性,如RecipientSender。初始化这些并将其设置为Order模型的相应属性。

// Create nested DeliveryOption model and add this to the order
$deliveryOptions = new \Instabox\Models\Order\NestedModels\DeliveryOption();
$deliveryOptions->sort_code = 'IN20';
$order->delivery_option = $deliveryOptions;

通过API创建订单

要通过API创建订单,您必须保存Order模型。

try {
    $order->save();
} catch (\Instabox\Exceptions\UnauthorizedException $exception) {
    // Client credentials are incorrect
} catch (\Instabox\Exceptions\ServerException $exception) {
    // Got a [500, 502, 503, 503, 507] response
} catch (\Instabox\Exceptions\ResponseException $exception) {
    // Response was unexpected.
} catch (\GuzzleHttp\Exception\ConnectException $exception) {
    // Guzzle ConnectionException occured
} catch (Exception $exceptions) {
    // Unexpected error occured
}

注意;可能会抛出一些异常。一旦有响应示例,将着手改进这些。

生成标签

Instabox通过其API提供创建标签的支持。但,正如其文档中所述

如果可以自己创建标签,请避免使用此功能。此功能是为真正的小型商家设计的。请注意,需要首先创建订单,然后才能获取标签。因此,标签可能需要几分钟才能可用。

因此,此客户端通过使用dompdf提供生成标签的功能。因此,无需等待,可以直接在制作订单后生成标签。要为订单生成标签,请使用

$label = $instabox->label($order);
$generatedLabel = $label->generateLabel();

file_put_contents('example-label.pdf', $generatedLabel);

示例

实现的一个完整示例可以在这里找到。

致谢

API的设置灵感来源于Picqer PHP客户端的设置

待办事项

  • 改进标签
    • 在标签底部添加小的Instabox标志
    • 使标签像素完美
    • 找出应使用哪个收件人的电话号码。
  • 使用响应示例改进不满意的路径
  • 添加测试
  • 探索使用spatie DTO为客户的可能性