berbix/berbix-php

与 Berbix API 交互的 PHP SDK

2.1.1 2022-11-09 20:09 UTC

This package is auto-updated.

Last update: 2024-09-10 00:09:19 UTC


README

这个 Berbix PHP 库提供了与 Berbix API 交互的简单接口。

使用此 API 库需要 PHP 7 或更高版本。

安装

您可以通过 Composer 安装此库。

composer require berbix/berbix-php

用法

构造客户端

$client = new \Berbix\Client("your_api_secret_here");

创建交易

$transactionTokens = $client->createTransaction(array(
  'customerUid' => "internal_customer_uid", // ID for the user in internal database
  'templateKey' => "your_template_key", // Template key for this transaction
));

使用刷新令牌创建令牌

$refreshToken = ''; // fetched from database
$transactionTokens = \Berbix\Tokens::fromRefresh($refreshToken);

获取交易数据

$transactionData = $client->fetchTransaction($transactionTokens);

参考

客户端

方法

构造函数(string $apiSecret, array $opts)

支持选项

  • apiHost - 用于开发目的的可选自定义主机。
  • httpClient - 可选的默认 PHP HTTP 客户端的覆盖。
createTransaction(array $options): Tokens

在 Berbix 中创建一个交易以初始化客户端 SDK。通常在创建交易后,您可能希望将刷新令牌存储在数据库中,与当前活动的用户会话相关联。

支持选项

  • email - 用户的先前验证电子邮件地址。
  • phone - 用户的先前验证电话号码。
  • customerUid - 您系统中的用户 ID 或标识符。
  • templateKey - 此交易的模板密钥。
  • matchData - 要与提取的数据进行比较的数据数组。
    • givenName - 要匹配的给定名称。
    • familyName - 要匹配的姓氏。
    • middleName - 要匹配的中名。
    • dateOfBirth - 要匹配的出生日期。
    • idExpiryDate - 要匹配的身份证到期日期。
createHostedTransaction(array $options): array

在 Berbix 中创建一个托管交易。通常在创建交易后,您可能希望将刷新令牌存储在数据库中,与当前活动的用户会话相关联。

支持选项

  • email - 用户的先前验证电子邮件地址(可选)。
  • phone - 用户的先前验证电话号码(可选)。
  • customerUid - 您系统中的用户 ID 或标识符。
  • templateKey - 此交易的模板密钥。
  • completionEmail - 完成后发送通知的电子邮件。
  • redirectUrl - 完成后重定向用户的 URL。
  • matchData - 要与提取的数据进行比较的数据数组。
    • givenName - 要匹配的给定名称。
    • familyName - 要匹配的姓氏。
    • middleName - 要匹配的中名。
    • dateOfBirth - 要匹配的出生日期。
    • idExpiryDate - 要匹配的身份证到期日期。

返回一个包含以下值的关联数组

  • tokens - 交易的 Tokens 对象。
  • hostedUrl - 托管交易的 URL。
fetchTransaction(Tokens $tokens): array

获取与交易相关的所有信息。如果用户已经完成了交易步骤,那么这将包括交易有效负载中描述的所有元素。

refreshTokens(Tokens $tokens): void

这通常不需要显式调用,因为它将由高级 SDK 方法调用,但可以用于获取新的客户端或访问令牌。

validateSignature(string secret, string body, string header): bool

此方法验证 webhook 内容是否被篡改。应该为每个配置为从 Berbix 接收 webhook 的端点调用此方法。

参数

  • secret - 这是与该 webhook 相关的秘密。注意:这与 API 秘密不同,可以在仪表板上的 webhook 配置页面找到。
  • body - webhook的完整请求体。这应该是在解析之前原始的请求体。
  • header - 'X-Berbix-Signature'头中的值。
deleteTransaction(Tokens $tokens): void

永久删除与提供的令牌对应的交易的所有提交数据。

updateTransaction(Tokens $tokens, array $parameters): array

更改交易的动作,例如在您的系统中进行审核。成功时返回更新后的交易。

参数

  • action: string - 描述对交易所采取的动作的字符串。通常这将要么是"接受"要么是"拒绝"。
  • note: string - 包含对所采取动作的说明的字符串(可选)。
overrideTransaction(tokens: Tokens, parameters: object): void

完成之前创建的交易,并覆盖其返回有效载荷和标志以匹配提供的参数。

参数

  • responsePayload: string - 描述在检索交易元数据时返回的有效载荷类型的字符串,例如 "us-dl"。请参阅我们的测试指南以获取可能的选项。
  • flags: array(string => string) - 一个可选的标志列表,与交易相关联(独立于有效载荷的内容),例如 ["id_under_18", "id_under_21"]。请参阅我们的标志文档以获取标志列表。
  • overrideFields: array(string => string) - 一个可选映射,从交易字段到所需的覆盖值,例如 'overrideFields' => array('date_of_birth' => '2000-12-09')

Tokens

属性

string accessToken

这是后端SDK使用的短期bearer令牌,用于识别与给定交易相关的请求。在使用高级SDK方法时通常不需要。

string clientToken

这是前端SDK使用的短期令牌,用于识别与给定交易相关的请求。在创建交易后,这通常会发送到前端SDK。

string refreshToken

这是一个长期令牌,允许在短期令牌过期后创建新的令牌。这通常存储在与给定用户会话关联的数据库中。

number transactionId

与交易关联的Berbix内部ID号。

Date expiry

访问和客户端令牌将过期的具体时间。

静态方法

fromRefresh(string $refreshToken): Tokens

从一个刷新令牌创建一个tokens对象,该对象可以传递给高级SDK方法。SDK将处理令牌刷新以访问相关数据。