nikspyratos/investec-sdk-php

Investec SDK for PHP

v1.0.0 2023-06-29 10:00 UTC

This package is auto-updated.

Last update: 2024-09-20 18:59:23 UTC


README

Latest Version on Packagist Tests Total Downloads

这是一个用于 Investec API 的 PHP SDK,使用 Saloon

这是一个社区制作的包,与 Investec 没有直接关联。

支持

安装

您可以通过 composer 安装此包

composer require nikspyratos/investec-sdk-php

注意:当前,稳定版本仅包括对授权(个人和三腿 OAuth)和私人银行业务 API 的支持。其他 API 已编写但未测试。有关更多详细信息,请参阅 路线图

如果您想使用这些其他 API,请从 main 分支安装

composer require nikspyratos/investec-sdk-php:"dev-main"

使用

请参阅 包文档API 文档 以获取更多详细信息。

如果您正在访问自己的账户数据,请参阅 内部使用。如果您正在访问 Investec 客户数据,请参阅 外部使用

请参阅 环境 以访问沙盒环境。

内部使用

首先,请确保您已经 获取了您的 API 凭证 - 这是您获取客户端 ID、密钥和 API 密钥的方式。

注意:`Internal use` 访问令牌的有效期为 30 分钟。

use InvestecSdkPhp\Connectors\InvestecConnector;

$clientId = '';
$clientSecret = '';
$apiKey = '';

//Initialise the API Connector
$connector = new InvestecConnector($clientId, $clientSecret, $apiKey);

//Get an access token
$authenticator = $connector->getAccessToken();

//Use it to authenticate requests for Private Banking
$api = $connector->privateBanking($authenticator);

//Have fun!
$data = $api->getAccounts();

外部使用

请参阅 API 文档 以获取详细信息。

您的组织需要直接与 Investec 联系以获取访问权限。Investec API 使用 OAuth 流程让客户为您授权访问他们的数据。

提醒:此包与 Investec 没有关联。

use InvestecSdkPhp\Connectors\InvestecOAuthConnector;

$clientId = '';
$clientSecret = '';
$redirectUri = '';

//Initialise the API Connector
$connector = new InvestecOAuthConnector($clientId, $clientSecret);

//Create an OAuth authorization URL. You redirect your user to this
$authUrl = $connector->getAuthorizationUrl($redirectUri);

在返回到您指定的 $redirectUri 后,您应该有一个代码。按常规操作继续

//Authorization code from the redirect
$code = ''

//Initialise the API Connector
$connector = new InvestecOAuthConnector($clientId, $clientSecret);

//Get an access token - this will still require the redirect URI
$authenticator = $connector->getAccessToken($redirectUri, $code);

//Use it to authenticate requests for Private Banking
$api = $connector->privateBanking($authenticator);

//Have fun!
$data = $api->getAccounts();

环境

API 提供了两个环境:沙盒和生产。

默认情况下,此 SDK 将使用生产环境。要更改此设置,您可以使用提供的枚举指定环境,如下所示

use InvestecSdkPhp\Enumerations\Environment;
$connector = new InvestecConnector($clientId, $clientSecret, Environment::SANDBOX);

数据传输对象

对于 Transfer MultiplePay Multiple 端点,接受受益人或账户的数组。

为了以结构化的方式处理,此包使用 dragon-code/simple-dto 构建所需的 DTO。

测试

测试设置为使用沙盒凭据(幸运的是,Investec 提供给我们)运行。

cp .env.example .env

然后,将沙盒环境变量值从 此处 复制到您的 .env 文件中。

然后,要运行测试

vendor/bin/pest

待办事项

  1. 使用卓越的Saloon SDK 生成器,除了某些外汇API端点外,剩余的API已实现。
  • 更新BOP报告 - 输入量巨大,包含多个嵌套数组和对象,目前造成DTO噩梦。
  • 验证BOP报告 - 与更新BOP报告类似的问题。
  • 上传文档处理的文件内容 - 文档中对如何填写此数据不明确。
  1. 对于未实现的私人银行端点,测试要么不工作(沙箱凭据问题)要么未编写。因此,它们的资源方法被标记为实验性。如果您希望看到任何API得到更积极的支持,请
  • 告诉我是否工作正常,遇到的问题等。
  • 创建一个使用PestPHP匹配现有测试风格的PR,包含API的工作测试。
  • 创建一个PR,更新文档,包含剩余端点的使用指南。

待办事项

  • 剩余API端点组的测试

变更日志

请参阅变更日志,了解更多最近的变化。

贡献

请参阅贡献指南以获取详细信息。

安全漏洞

请查阅我们的安全策略了解如何报告安全漏洞。

鸣谢

许可

MIT许可(MIT)。请参阅许可文件获取更多信息。