basiqio / basiq-sdk-php
Basiq.io API 的 PHP SDK
Requires
- guzzlehttp/guzzle: ~6.0
This package is auto-updated.
Last update: 2023-08-12 00:32:49 UTC
README
请注意,此 SDK 已弃用。
我们正在幕后努力,为客户生产可靠且最新的 SDK。
在此期间,如果您有兴趣自己生成,可以访问我们的完整 Open API/Swagger 规范 此处。
这是 Basiq.io API PHP SDK 的文档
简介
Basiq.io PHP SDK 是一套工具,您可以使用它轻松地与 Basiq API 进行通信。如果您想熟悉 API 文档,请点击此处。
SDK 的组织结构旨在反映 HTTP API 的功能和层次结构。SDK 功能所需的最顶层对象是 Session 对象,它需要实例化时提供您的 API 密钥。您可以在 仪表板 上获取您的 API 密钥。
变更日志
1.1.0 添加对 secondaryLoginId 的支持
0.9.1beta - getTransactions 现在接收 limit 参数。修复了刷新所有连接的 bug
0.9.0beta - 初次发布
入门
现在您有了 API 密钥,可以使用以下命令安装 SDK
composer require basiqio/basiq-sdk-php
下一步是将使用的类导入到您的命名空间中。您可能最常使用的类列表
// Used to handle the token session use Basiq\Session; // Used to manipulate jobs and connections use Basiq\Services\ConnectionService; // Used to manipulate users use Basiq\Services\UserService;
常用示例
获取机构列表
您可以获取支持的金融机构列表。函数返回 Institution 结构体的列表。
use Basiq\Session; $session = new Session("YOUR_API_KEY"); $institutions = $session->getInstitutions();
在实例化 Session 对象时,您可以指定 API 版本。如果未指定版本,则默认版本为 1.0。
use Basiq\Session; $session = new Session("YOUR_API_KEY", "2.0"); $institutions = $session->getInstitutions();
创建新连接
当发起新的连接请求时,服务器将创建一个作业,将用户的金融机构与您的应用程序连接起来。
use Basiq\Session; $session = new Session("YOUR_API_KEY"); $user = $session->forUser($userId); $job = $user->createConnection($institutionId, $userId, $password[, $securityCode, $secondaryLoginId]); // Poll our server to wait for the credentials step to be evaluated $connection = job->waitForCredentials(1000, 60);
获取并遍历交易
在此示例中,函数返回一个通过 connection->id 属性筛选的交易列表结构体。您可以通过调用 Next() 来遍历交易列表。
use Basiq\Session; use Basiq\Utilities\FilterBuilder; $session = new Session("YOUR_API_KEY"); $user = $session->forUser($userId); $fb = new FilterBuilder(); $fb->eq("connection->id", "conn-id-213-id"); $transactions = $user->getTransactions($fb); while ($transactions->next()) { var_dump("Next transactions len:", len(transactions.Data)) }
API
SDK的API通过服务和实体进行操作。不同的服务返回不同的实体,但映射不是一对一的。
错误
如果操作遇到错误,您将接收到一个HTTPResponseException实例。该类包含所有可用的数据,您可以使用这些数据采取相应的行动。
HTTPResponseException类字段
public $response; public $statusCode; public $message;
有关错误对象中相关字段的更多信息,请参阅文档。
过滤
一些方法支持向其中添加过滤器。过滤器使用FilterBuilder类创建。实例化该类后,您可以以比较(field, value)的形式调用方法。
示例
use Basiq\Utilities\FilterBuilder; $fb = new FilterBuilder(); $fb->eq("connection->id", "conn-id-213-id")->gt("transaction.postDate", "2018-01-01") $transactions = $user->getTransactions(fb);
此示例过滤器将匹配所有与ID为"conn-id-213-id"的连接,并且日期晚于"2018-01-01"的交易。您需要做的就是当您想使用过滤器时传递过滤器实例。
SDK API列表
服务
会话
创建新的Session对象
$session = new Session("YOUR_API_KEY");
UserService
以下是为UserService提供的API
创建新的UserService
$userService = new UserService($session);
引用用户
注意:以下操作不会发送HTTP请求,可以用于对实例化的用户执行额外操作。
$user = $userService->forUser($userId);
创建新用户
$user = $userService->create(["email" => "", "mobile" => ""]);
获取用户
$user = $userService->get($userId);
更新用户
$user = $userService->update($userId, ["email" => "", "mobile" => ""]);
删除用户
null = $userService->delete($userId);
刷新连接
$jobs = $userService->refreshAllConnections($userId);
列出所有连接
$conns = $userService->getAllConnections($userId[, $filter]);
获取账户
$acc = $userService->getAccount($userId, $accountId);
获取账户
$accs = $userService->getAccounts($userId[, $filter]);
获取交易
$transaction = $userService->getTransaction($userId, $transactionId);
获取交易
$transactions = $userService->getTransactions($userId[, $filter]);
ConnectionService
以下是为Connection服务提供的API
创建新的ConnectionService
$connService = new ConnectionService($session, $user);
获取连接
$connection = $connService->get($connectionId);
获取ID为而不执行HTTP请求的连接实体
$connection = $connService->for($connectionId);
创建新连接
$job = $connService->create(["institutionId" => "", "loginId" => "", "password" => "", "securityCode" => "", "secondaryLoginId" => ""]);
更新连接
$job = $connService->update($connectionId, $password);
删除连接
null = $connService->delete($connectionId);
获取工作
$job = $connService->getJob($jobId);
实体
更新用户实例
$user = $user->update(["email" => "", "mobile" => ""]);
删除用户
null = $user->delete();
获取所有用户账户
$accounts = $user->getAccounts();
获取单个用户账户
$account = $user->getAccount($accountId);
获取所有用户交易
$transactions = $user->getTransactions($filterBuilder = null, $limit = null < 500);
获取单个用户交易
$transaction = $user->getTransaction($transactionId);
创建新连接
$job = $user->createConnection(["institutionId" => "", "loginId" => "", "password" => "", "securityCode" => "", "secondaryLoginId" => ""]);
刷新所有连接
$jobs = $user->refreshAllConnections();
连接
刷新连接
$job = $connection->refresh();
更新连接
$job = $connection->update($password);
删除连接
null = $connection->delete();
工作
获取连接 ID(如果可用)
$connectionId = $job->getConnectionId();
获取连接
$connection = $job->getConnection();
在等待凭据步骤解析后获取连接
(时间间隔以毫秒为单位,超时以秒为单位;在超时的情况下将抛出异常)
$connection = $job->waitForCredentials($interval, $timeout);
在等待交易步骤解析后获取连接
(时间间隔以毫秒为单位,超时以秒为单位;在超时的情况下将抛出异常)
$connection = $job->waitForTransactions($interval, $timeout);
交易列表
获取下一组交易 [mut]
$next = $transactions->next();