simplesquid/vend-sdk

为 Vend POS 定制的非官方 PHP SDK

v0.5.21 2023-10-28 14:18 UTC

README

Latest Version on Packagist Build Status MIT License Total Downloads

一个非官方的 PHP SDK,用于 Vend POS API。

安装

您可以通过 composer 安装此包

composer require simplesquid/vend-sdk

设置

要设置,获取 SDK 实例并设置所需的用户代理和设置

$vend = Vend::getInstance();

/* Optional configuration. */
$vend->userAgent('Vend SDK')
     ->requestTimeout(2)
     ->confirmationTimeout(30);

建议您将客户端对象作为单例使用,但对此没有明确限制。

使用

这概述了一个典型的指令序列,但不是 SDK 所有功能的完整列表。请查阅代码以获取更高级的使用方法。还建议您阅读 Vend API 文档

或者,您可以在我们的 Laravel Vend SDK 包 中查看一个工作的授权实现。

授权

您有两种方式可以使用 Vend API 进行授权,个人访问令牌或 OAuth 2.0。

个人访问令牌

当使用个人访问令牌时,只需像这样设置 Vend 客户端

$vend->domainPrefix($domain_prefix)
     ->personalAccessToken($access_token);

OAuth 2.0

使用 OAuth 标识设置 Vend 客户端

$vend->clientId($client_id)
     ->clientSecret($client_secret)
     ->redirectUri($redirect);
初始授权过程

将用户发送到由 OAuth 生成的 OAuth URL

$vend->getAuthorisationUrl($previous_url);

使用 OAuth 流程返回的域名前缀和授权码

/** @var \SimpleSquid\Vend\Resources\OneDotZero\Token */
$token = $vend->domainPrefix($domain_prefix)
              ->oAuthAuthorisationCode($code);

请确保您存储返回的 Token 对象和域名前缀。

后续设置过程

一旦您收到初始授权,您可以使用授权过程中收到的 Token 对象设置 Vend 客户端

$vend->authorisationToken($token);

如果请求抛出 \SimpleSquid\Vend\Exceptions\TokenExpiredException,您可以像这样刷新令牌

/** @var \SimpleSquid\Vend\Resources\OneDotZero\Token */
$token = $vend->refreshOAuthAuthorisationToken();

同样,请确保您存储返回的 Token 对象。

请求

要查看所有可用的请求,请查看位于 Actions 文件夹中的 traits。例如,可以使用以下请求管理产品

/**
 * List products.
 * Returns a paginated list of products.
 *
 * @param  int|null   $page_size  The maximum number of items to be returned in the response.
 * @param  int|null   $after      The lower limit for the version numbers to be included in the response.
 * @param  int|null   $before     The upper limit for the version numbers to be included in the response.
 * @param  bool|null  $deleted    Indicates whether deleted items should be included in the response.
 *
 * @return \SimpleSquid\Vend\Resources\TwoDotZero\ProductCollection
 */
$products = $vend->product->get($page_size, $after, $before, $deleted);
/**
 * Get a single product.
 * Returns a single product object with a given ID.
 *
 * @param  string  $id  Valid product ID.
 *
 * @return \SimpleSquid\Vend\Resources\TwoDotZero\Product
 */
$product = $vend->product->find($id);

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 变更日志

贡献

有关详细信息,请参阅 贡献指南

安全

如果您发现任何安全相关的问题,请通过电子邮件 security@simplesquid.co.za 而不是使用问题跟踪器。

鸣谢

包骨架基于 spatie/skeleton-php

关于我们

SimpleSquid 是一家位于南非开普敦的小型网页开发和设计公司。

许可证

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