blabs/fidelynet-sdk-php

FidelyNET忠诚度服务API的包装器

v2.6.1 2024-07-11 08:08 UTC

README

PHP包装器FidelyNET API。

入门

此SDK允许您与backofficecustomerterminal服务进行交互。创建服务实例的最简单方法是使用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 (可以是publicprivate,仅适用于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