ferjul17/sellsy-api

此软件包已被废弃且不再维护。未建议替代软件包。

PHP 库,用于调用 Sellsy 的 API

1.0.1 2016-09-07 13:21 UTC

This package is auto-updated.

Last update: 2024-08-29 04:00:38 UTC


README

Build Status Coverage Status SensioLabsInsight

PHP 库,用于调用 Sellsy 的 API

$client = new Client(['userToken'      => 'xxx', 'userSecret'     => 'xxx',
                      'consumerToken'  => 'xxx', 'consumerSecret' => 'xxx',
                     ]);
                     
var_dump($client->getService('Infos')->call('getInfos', []));
$promise = $client->getService('Infos')->callAsync('getInfos', [])->then(function($res) {
    var_dump($res);
});
$promise->wait();

如何安装

首先您需要 Composer

php -r "readfile('https://getcomposer.org.cn/installer');" | php

然后添加 Sellsy API 作为您项目的依赖项

php composer.phar require ferjul17/sellsy-api

如何使用

设置库

库提供了一个名为 Service 的类,该类代表 Sellsy API 的一部分。该服务允许您调用与此模块相关的 API。例如,服务 Accountdatas 允许调用以 Accountdatas 开头的所有 Sellsy API 方法,如 Accountdatas.getTaxe 或 Accountdatas.updateUnit。

服务由一个名为 Client 的工厂创建。因此,在获得 Service 之前,您首先需要创建一个 Client。要创建客户端,只需调用其构造函数。其第一个参数是一个包含配置的数组。您必须提供调用 API 的凭证,包括用户令牌和密钥,以及您可以在 Sellsy 界面中找到的消费者令牌和密钥。

require 'path/to/vendor/autoload.php';
use SellsyApi\Client;

$client = new Client(['userToken'      => 'xxx', 'userSecret'     => 'xxx',
                      'consumerToken'  => 'xxx', 'consumerSecret' => 'xxx',
                     ]);

调用 API

一旦您有了客户端,您可以通过调用方法 getService($serviceName) 来检索 Service

$service = $client->getService('Accountdatas');

最后,您可以通过方法 call($methodName, $params) 来调用 API。

$response = $service->call('createUnit', ['unit' => ['value' => 'Kg']);

还有一个方法 callAsync($methodName, $params),它发送异步请求并返回一个 Promise

$promise = $service->callAsync('createUnit', ['unit' => ['value' => 'Kg']);
$response = $promise->wait();

有关 Promise 的更多信息,请参阅 此处

处理错误

为了处理错误,您应该使用先前方法的可重试版本:retryableCall($callable)retryableCallAsync($callable)。如果库可以处理错误,它将尝试通过调用 $callable 再次发送请求。

$callable 必须是一个函数,该函数返回要提供给 call()callAsync() 方法的参数。

$callable 接受 3 个参数

  • 用于发送调用的 ServiceInterface 实例
  • 重试次数。第一次此值为 0。
  • 接收到的错误
var_dump($client->getService('Infos')->retryableCall(function (ServiceInterface $service, $retry, $e) {
    if ($retry > 3) {
        throw $e;
    }
    return ['getInfos', []];
}));
$promise = $client->getService('Infos')->retryableCallAsync(function (ServiceInterface $service, $retry, $e) {
    if ($retry > 3) {
        throw $e;
    }
    return ['getInfos', []];
})->then(function ($res) {
    var_dump($res);
});
$promise->wait();

如何运行测试

如果您想测试此库,可以克隆此存储库运行测试套件

 git clone https://github.com/ferjul17/Sellsy-api.git

然后安装依赖项

composer update

然后运行测试

vendor/phpunit/phpunit/phpunit

许可证

Sellsy API 是一个开源项目,在 MIT 许可证下发布。有关更多信息,请参阅 LICENSE 文件。