blabs / fidelynet-sdk-php
FidelyNET忠诚度服务API的包装器
Requires
- php: ^8.0
- ext-curl: *
- ext-json: *
- graham-campbell/guzzle-factory: ^3.0||^4.0||^5.0
- guzzlehttp/guzzle: ^6.2||^7.0
- spatie/data-transfer-object: ^3.3.0
Requires (Dev)
- phpunit/phpunit: ^7.5.15|^8.5|^9.3
- dev-main
- v2.x-dev
- v2.6.1
- v2.6.0
- v2.5.0
- v2.4.0
- v2.3.0
- v2.2.16
- v2.2.15
- v2.2.14
- v2.2.13
- v2.2.12
- v2.2.11
- v2.2.10
- v2.2.9
- v2.2.8
- v2.2.7
- v2.2.6
- v2.2.5
- v2.2.4
- v2.2.3
- v2.2.1
- v2.2.0
- v2.1.13
- v2.1.12
- v2.1.11
- v2.1.10
- v2.1.9
- v2.1.8
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.4a
- v2.1.3
- 2.1.2
- 2.1.1
- v2.1.0
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.x-dev
- v1.0.1
- v1.0.0
- v0.1
This package is auto-updated.
Last update: 2024-09-11 08:27:25 UTC
README
PHP包装器FidelyNET API。
入门
此SDK允许您与backoffice
、customer
和terminal
服务进行交互。创建服务实例的最简单方法是使用ServiceFactory::create()
方法。它需要两个参数,第一个是包含所需服务的字符串,第二个是包含由Data Loyalty提供的相关认证凭据和一些其他可选参数的数组。
使用工厂创建terminal
服务实例的示例
use Blabs\FidelyNet\ServiceFactory; // Creates an instance of the Terminal service. $terminal_service = ServiceFactory::create('terminal', [ 'username' => 'wsTerminal01', 'password' => 'password', 'terminal' => '000001' ]); // Uses the instance to query the service to getting info on a campaign id /** @var \Blabs\FidelyNet\Services\TerminalService $terminal_service */ $terminal_service->getCampaign('1001');
ServiceFactory
参数数组的支持键
除了凭据之外,您还可以在create()
方法的第二个参数中指定多个选项,其中许多已经具有默认值。如果需要覆盖它们,请使用以下数组键。
username
password
terminal
campaign_id
demo_mode
(布尔值)session_persists
(布尔值)session_id_provider
(实现\Blabs\FidelyNet\Contracts\SessionIdProviderContract
接口)session_type
(可以是public
或private
,仅适用于customer
服务)http_client
(一个GuzzleHttp\Client
实例或实现GuzzleHttp\ClientInterface
的实例)
use Blabs\FidelyNet\ServiceFactory; // Creates an instance of the Customer service, using a public session and with other customized options. $customer_service = ServiceFactory::create('customer', [ // required keys 'username' => 'myCustomerUserName', 'password' => 'myCustomerPassword', 'campaign_id' => '10000', // optional keys 'demo_mode' => true, 'session_persists' => false, 'session_type' => 'public', ]);
每个服务所需参数
每个服务都需要在配置数组中指定一些特定参数才能实例化。
-
BackofficeService
username
password
-
TerminalService
username
password
terminal
-
CustomerService
username
password
campaign_id
会话持久性
FidelyNET API提供了需要在服务上打开会话才能开始发送实际请求的认证系统。
通常您需要发送一个认证请求,传递您的凭据,然后您将收到一个会话令牌,该令牌将用于授权所有后续请求。令牌自上次请求后约15分钟内有效。
SDK在创建服务实例时自动实现此机制,并且还可以通过多个请求(甚至多个相同服务的实例)持久化会话ID。在会话令牌过期请求失败的情况下,客户端将自动发出新的登录请求,更新令牌并重试失败的请求。
当使用ServiceFactory
类时,会话持久性默认启用,您可以使用create()
方法的第二个参数中的session_persists
数组键来覆盖此选项。默认情况下,SDK使用会话持久化“驱动程序”,该驱动程序将数据保存到临时文件系统目录(通常在*nix系统上的tmp/
),但是您可以创建自己的持久化机制实现(例如使用会话或任何其他存储系统),通过实现\Blabs\FidelyNet\Contracts\SessionIdProviderContract
接口。
支持的API操作
到目前为止,SDK支持的“操作”比服务中可用的要少,我们的目标是提供一个简化大多数常见操作的库。
服务方法参考
关于每个服务中每个方法的全文档将尽快提供
测试
composer test