currency-cloud / client
一个PHP库,实现了The Currency Cloud API v2的完整功能。
Requires
- php: >=7.2
- guzzlehttp/guzzle: ~6.1||~7.0
- symfony/event-dispatcher: ^5.0||^6.0
- symfony/yaml: ^2.7||^3.0||^4.0||^5.0||^6.0
Requires (Dev)
- php-vcr/php-vcr: ~1.2
- phpunit/phpunit: ^8.0
- dev-master
- v3.9.0
- v3.8.0
- v3.7.0
- v3.6.1
- v3.6.0
- v3.5.0
- v3.4.0
- v3.3.1
- v3.3.0
- v3.2.0
- v3.1.0
- v3.0.0
- v2.2.1
- v2.1.2
- v2.0.1
- v1.11.2
- v1.10.2
- v1.9.3
- v1.9.2
- v1.8.1
- v1.7.0
- v1.6.3
- v1.5.2
- v1.5.1
- v1.4.3
- v1.3.1
- v1.2.1
- v1.0.1
- v0.24.1
- v0.20.1
- v0.17.3
- v0.14.0
- v0.13.0
- v0.12.0
- v0.11.0
- v0.10.0
- v0.9.0
- v0.8.0
- v0.7.0
- dev-release/3.9.0
- dev-fix_account_verification
- dev-jonathancouchman-patch-1
- dev-Adds-confirmation-of-payee-api
- dev-COLH-1136-sdk-update-php-sdk-for-new-inbound-transaction-api
- dev-Add-beneficiaries-new-fields
- dev-release/3.8.0
- dev-SDKPHP-113-add-new-fields-to-payments-api
- dev-release/3.7.0
- dev-SDKPHP-111-switch-to-post-find-endpoints
- dev-release/3.6.1
- dev-sdkphp-109
- dev-release/3.6.0
- dev-sdkphp-31_transfer_cancel
- dev-release/3.5.0
- dev-sdkphp-105
- dev-release/3.4.0
- dev-release/4.4.0
- dev-SDKPHP-102-php8-support
- dev-release/3.3.1
- dev-sdkphp-106_termas_and_conditions_bug
- dev-release/3.3.0
- dev-sdkphp-104
- dev-sdkphp-103_fix_annotation_naming
- dev-release/3.2.0
- dev-SDKPHP-101-symfony-yaml-v5-update
- dev-sdk-99_funding_account_on_behalf_of
- dev-release/3.1.0
- dev-SDKPHP-96
- dev-release/3.0.0
- dev-sdkphp-95
- dev-upgrade_php_supported_version
- dev-sdkphp-94
- dev-release/2.2.1
- dev-add_next_day_conversion_date
- dev-release/2.1.2
- dev-sdkphp-70
- dev-sdkphp-73_payment_purpose_codes_test
- dev-release/2.0.1
- dev-SDKPHP-68
- dev-sdkphp-66_remove_settlements_endpoints
- dev-release/1.11.2
- dev-SDKPHP-55
- dev-SDKPHP-62
- dev-release/1.10.2
- dev-test_upgrade_versions
- dev-fix_payment_date_format
- dev-sdkphp-47_payment_tracking_info
- dev-sdkphp-60_add_withdrawal_account
- dev-release/1.9.3
- dev-sdkphp-49
- dev-release/1.9.2
- dev-sdkphp-54_conversion_date_preference
- dev-release/1.8.1
- dev-release/1.7.0
- dev-SDKPHP-46
- dev-SDKPHP-44
- dev-release/1.6.3
- dev-payment_level_fees
- dev-release/1.5.2
- dev-SDKPHP-42_fix_transaction_find
This package is not auto-updated.
Last update: 2024-09-25 08:40:49 UTC
README
Currencycloud API v2 PHP客户端
版本:3.9.0
这是Currencycloud API的官方PHP SDK。每个API端点的额外文档可以在developer.currencycloud.com找到。
如果您有任何疑问或需要支持,请联系我们的开发团队development@currencycloud.com。请在任何通信中引用您的登录ID,这将使我们更容易找到您的账户并提供所需的支持。
先决条件
Composer(可选,但强烈推荐)
CurrencyCloud-PHP是一个Composer项目。虽然使用Composer不是强制性的,但使用Composer来处理依赖管理和自动加载会更加方便。
支持的PHP版本
此库旨在支持并已针对PHP 7.4和PHP 8.0进行测试。
安装
推荐通过Composer安装Currencycloud SDK。
如果您尚未安装Composer,请参阅Composer安装指南。
假设您已全局安装Composer,您可以通过执行以下操作将Currencycloud SDK添加到项目中
composer require currency-cloud/client
安装后,如果您之前没有要求,您需要要求Composer的自动加载器
require 'vendor/autoload.php';
用法
您可以在developer.currencycloud.com注册示例API密钥。
PHP 7的示例
use CurrencyCloud\CurrencyCloud; use CurrencyCloud\Session; require_once __DIR__ . '/vendor/autoload.php'; $session = new Session( Session::ENVIRONMENT_DEMONSTRATION, '<user-id>', '<api-key>' ); $client = CurrencyCloud::createDefault($session); //Authenticate $client->authenticate() ->login(); //Get available currencies $currencies = $client->reference() ->availableCurrencies(); echo "Supported currencies:\n"; foreach ($currencies as $currency) { printf( "Currency: %s; Code: %s; Decimal places: %d\n", $currency->getName(), $currency->getCode(), $currency->getDecimalPlaces() ); } echo "Balances:\n"; //Find balances $balances = $client->balances() ->find(); foreach ($balances->getBalances() as $balance) { printf( "Balance ID: %s; Currency: %s; Amount: %s\n", $balance->getId(), $balance->getCurrency(), $balance->getAmount() ); } //Close session $client->authenticate()->close();
对于更长的示例,请参阅cook-book.php,它是对文档中食谱的实现。
常见模式
在多个请求中重用客户端
身份验证令牌是长期有效的,并且旨在用于多个请求。这将提高通过API的调用性能。
代表
如果您想代表其他用户进行调用(例如,您的最终客户),您可以通过用户的联系ID执行某些“代表”用户的命令。以下是一个示例
$client->onBehalfOf('c6ece846-6df1-461d-acaa-b42a6aa74045', function (CurrencyCloud $client) { $balances = $client->balances() ->find(); foreach ($balances->getBalances() as $balance) { printf( "Balance ID: %s; Currency: %s; Amount: %s\n", $balance->getId(), $balance->getCurrency(), $balance->getAmount() ); } });
上述每笔交易都将在该联系范围的限制内执行,并关联到该联系。请注意,执行交易的真实用户也将被存储。
错误
当API出现错误时,库旨在提供尽可能多的信息。将抛出一个包含许多有用信息的CurrencyCloudException
,您可以通过其方法访问这些信息。当异常转换为字符串时,它将提供如下信息
BadRequestException --- platform: 'PHP 7.1.11-1+deb.sury.org~trusty+1' request: parameters: { } verb: get url: 'https://devapi.currencycloud.com/v2/rates/detailed?buy_currency=EUR&sell_currency=GBP&fixed_side=buy&amount=10000.00' response: status_code: 400 date: 'Tue, 13 Nov 2018 13:40:00 GMT' request_id: '2915002181730358306' errors: - field: base code: rate_could_not_be_retrieved message: 'Rate could not be retrieved' params: { }
这分为5个部分
- 错误类型:在这种情况下,
BadRequestException
代表HTTP 400错误 - 平台:客户端中使用的PHP实现
- 请求:有关已发出的HTTP请求的详细信息,例如POST参数
- 响应:有关返回的HTTP响应的详细信息,例如HTTP状态码
- 错误:提供额外信息的错误列表
最后一部分包含有价值的信息
- 字段:与错误相关的参数
- 代码:表示此错误的代码
- 消息:解释错误的可读性消息
- 参数:包含错误消息动态部分的映射,用于构建自定义错误消息
当与Currencycloud支持团队合作解决API调用问题时,在所有通信中包含完整的错误信息可能非常有帮助。
开发
测试
可以使用vendor/bin/phpunit
运行测试用例。
依赖
贡献
我们欢迎所有人的pull请求! 请参阅 CONTRIBUTING。对我们创建世界上最好的货币移动API的巨大帮助,我们表示衷心的感谢!
版本控制
本项目使用语义版本控制。您可以安全地表达对主版本的依赖,并期望所有次要和修补程序版本都与之前兼容。
弃用策略
技术发展迅速,我们一直在寻找更好的方式来服务我们的客户。有时我们需要通过移除不再必要的代码部分来为创新腾出空间。我们理解这可能会造成干扰,因此我们设计了一项弃用策略,以保护客户的投资,并使我们能够利用现代工具、框架和实践来开发软件。
弃用意味着我们不鼓励使用功能、设计或实践,因为它们已被取代或不再被认为是高效或安全的,但我们不是立即将其删除,而是将其标记为 @deprecated 以提供向后兼容性和时间来更新您的项目。在弃用的功能在SDK中保留一段时间期间,我们建议您将其替换为代码相关部分中解释的推荐替代方案。
我们从宣布之日起三个月后移除弃用的功能。
我们客户资产的安全对我们至关重要,有时我们不得不弃用功能,因为它们可能构成安全威胁,或者因为有更安全的新方法。在这种情况下,我们保留设定不同弃用期的权利,该期可能从 立即删除 到标准的 三个月。
一旦功能被标记为弃用,我们就不再开发代码或实施错误修复。我们只做安全修复。
弃用功能列表
(No features are currently being deprecated)
支持
我们积极支持SDK的最新版本。我们基于最佳努力支持立即先前的版本。所有其他版本不再受支持或维护。
版权
版权(c)2015-2021 Currencycloud。有关详细信息,请参阅 LICENSE。