nikspyratos / investec-sdk-php
Investec SDK for PHP
Requires
- php: ^8.1
- dragon-code/simple-dto: ^2.7
- nesbot/carbon: ^2.66
- sammyjo20/saloon: ^2.0
Requires (Dev)
- laravel/pint: ^1.8
- pestphp/pest: ^2.4
- phpstan/phpstan: ^1.10
- rector/rector: ^0.15.24
- vlucas/phpdotenv: ^5.5
README
这是一个用于 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"
使用
如果您正在访问自己的账户数据,请参阅 内部使用。如果您正在访问 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 Multiple
和 Pay Multiple
端点,接受受益人或账户的数组。
为了以结构化的方式处理,此包使用 dragon-code/simple-dto
构建所需的 DTO。
测试
测试设置为使用沙盒凭据(幸运的是,Investec 提供给我们)运行。
cp .env.example .env
然后,将沙盒环境变量值从 此处 复制到您的 .env 文件中。
然后,要运行测试
vendor/bin/pest
待办事项
- 使用卓越的Saloon SDK 生成器,除了某些外汇API端点外,剩余的API已实现。
更新BOP报告
- 输入量巨大,包含多个嵌套数组和对象,目前造成DTO噩梦。验证BOP报告
- 与更新BOP报告
类似的问题。上传文档处理的文件内容
- 文档中对如何填写此数据不明确。
- 对于未实现的私人银行端点,测试要么不工作(沙箱凭据问题)要么未编写。因此,它们的资源方法被标记为实验性。如果您希望看到任何API得到更积极的支持,请
- 告诉我是否工作正常,遇到的问题等。
- 创建一个使用PestPHP匹配现有测试风格的PR,包含API的工作测试。
- 创建一个PR,更新文档,包含剩余端点的使用指南。
待办事项
- 剩余API端点组的测试
变更日志
请参阅变更日志,了解更多最近的变化。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请查阅我们的安全策略了解如何报告安全漏洞。
鸣谢
- Nik Spyratos
- 所有贡献者
- Saloon
- Saloon SDK 生成器,用于加快剩余API的工作进度!
许可
MIT许可(MIT)。请参阅许可文件获取更多信息。