benmajor / exchange-rates-api
ExchangeRatesAPI 的非官方 SDK。 (https://exchangeratesapi.io/)
Requires
- php: >= 7.0
- guzzlehttp/guzzle: ^6.3 || ^7.0
README
这是一个免费、优秀的 ExchangeRatesAPI 的非官方包装器,它提供了由 欧洲中央银行 提供的汇率查询服务。它具有许多有用的功能,并且可以使用 Composer 轻松安装。
4.0.0 更新
由于 ExchangeRatesAPI 的定价变化,本项目现在使用 ExchangeRates.host 作为其 API 提供商。现在应将其视为非官方 SDK。4.0.0 应与依赖于已不再免费的 ExchangeRatesAPI 的旧版本向后兼容。
目录
1. 安装
最简单的安装方法是使用 Composer
$ composer require benmajor/exchange-rates-api
或者,您可以从 src/
目录下载所有文件并将它们包含在您的项目中。重要提示:如果您手动安装 SDK,则还必须安装 Guzzle 客户端。
2. 入门
CurrencyExchangeAPI 不需要 API 密钥或身份验证即可访问和查询其 API,因此使用此库入门很容易。以下示例显示了如何使用库实现各种功能。
基本用法
从欧洲中央银行获取最新汇率
use \BenMajor\ExchangeRatesAPI\ExchangeRatesAPI;
use \BenMajor\ExchangeRatesAPI\Response;
use \BenMajor\ExchangeRatesAPI\Exception;
$access_key = '<YOUR ACCESS KEY>';
$use_ssl = false; # Free plans are restricted to non-SSL only.
$lookup = new ExchangeRatesAPI($access_key, $use_ssl);
$rates = $lookup->fetch();
历史数据
获取自 1999 年以来的任何一天的历史汇率
$access_key = '<YOUR ACCESS KEY>';
$lookup = new ExchangeRatesAPI($access_key);
$rates = $lookup->setFetchDate('2015-01-20')->fetch();
获取时间段的历史汇率
$access_key = '<YOUR ACCESS KEY>';
$lookup = new ExchangeRatesAPI($access_key);
$rates = $lookup->addDateFrom('2015-01-20')->addDateTo('2015-01-21')->fetch();
设置基础货币
默认情况下,基础货币设置为欧元 (EUR),但可以进行更改
$access_key = '<YOUR ACCESS KEY>';
$lookup = new ExchangeRatesAPI($access_key);
$rates = $lookup->setBaseCurrency('GBP')->fetch();
获取特定汇率
如果您不需要所有当前汇率,则可以使用 addRate()
仅指定您想要的货币。以下代码仅获取英镑 (GBP) 和欧元 (EUR) 之间的汇率
$access_key = '<YOUR ACCESS KEY>';
$lookup = new ExchangeRatesAPI($access_key);
$rates = $lookup->addRate('EUR')->setBaseCurrency('GBP')->fetch();
请参阅 API 网站 获取更多信息以及完整的 API 文档。
请注意:默认情况下,fetch()
方法将返回一个新的 ExchangeRatesAPI\Response
对象。但是,通过将单个参数 true
传递给 fetch()
方法,您可以获取原始 JSON 响应。
3. API 参考
以下 API 参考列出了 ExchangeRatesAPI 的公开方法
ExchangeRatesAPI
参考
addDateFrom( string $from )
:
设置获取历史汇率的时间。$from 应为包含 ISO 8601 日期的字符串。
getDateFrom()
:
返回获取历史汇率的时间。如果没有指定,则返回 null。
removeDateFrom()
:
删除获取历史汇率指定的开始日期。
addDateTo( string $to )
:
设置获取历史汇率结束日期。$to 应为包含 ISO 8601 日期的字符串。
getDateTo()
:
返回获取历史汇率指定的结束日期。如果没有指定,则返回 null。
getAccessKey()
:
返回当前正在使用的access_key
。
getUseSSL()
:
返回一个布尔标志,用于确定哪个API URL将被用于执行请求。免费计划仅限于非SSL使用。
removeDateTo()
:
移除获取历史汇率所指定的结束日期。
currencyIsSupported( string $code )
:
检查是否支持特定的货币代码。$code
应传递为ISO 4217代码(例如EUR
)。
如果支持,则返回true
,如果不支持,则返回false
。
setBaseCurrency( string $code )
:
设置用于汇率的基础货币。$code
应传递ISO 4217代码(例如EUR
)。
$code
必须是以下之一支持的货币代码。
getBaseCurrency()
:
返回当前指定的基础货币。如果尚未调用setBaseCurrency()
,则返回默认基础货币EUR
。
addRates( array $codes )
:
添加要检索的多个货币。$codes
应为一个ISO 4217代码数组(例如["EUR", "GBP", "BGN"]
)。
数组中的每个代码必须是以下之一支持的货币代码。
addRate( string $code )
:
添加要检索的新货币。$code
应传递ISO 4217代码(例如EUR
)。
$code
必须是以下之一支持的货币代码。
如果没有添加汇率,则将返回所有汇率。
removeRates( array $codes )
:
从检索列表中移除已添加的多个货币。$codes
应为一个ISO 4217代码数组(例如["EUR", "GBP", "BGN"]
)。
$code
必须是以下之一支持的货币代码。
removeRate( string $code )
:
移除已添加到检索列表中的货币。$code
应传递ISO 4217代码(例如EUR
)。
$code
必须是以下之一支持的货币代码。
setAccessKey( string $access_key )
:
设置用于所有请求的access_key
。
setUseSSL( bool $use_ssl )
:
根据所选模式(SSL或非SSL)设置API URL。免费计划仅限于非SSL使用。
fetch( bool $returnJSON = false, bool $parseJSON = true )
:
发送请求到API并返回一个Response
对象,或原始JSON响应。如果$returnJSON
设置为true
,则返回一个标准的PHP对象,而不是ExchangeRatesAPI\Response
对象。
convert( string $to, float $amount, int $rounding )
:
这是一个方便的函数,用于结合几个方法,以便快速执行货币转换。
$to
:应指定为要转换到的ISO 4217货币代码。
$amount
:要转换的金额。
$rounding
:要四舍五入的金额。默认为2
。
此方法调用将返回从指定基础货币到$to
的转换后的货币金额。
getSupportedCurrencies( string $concat = null )
:
返回支持的货币代码列表。如果$concat
为null
,则返回一个货币代码数组。如果指定了$concat
为字符串,则返回一个由$concat
连接的字符串。
getRates( string $concat = null )
:
返回当前指定的要检索的汇率列表。如果$concat
为null
,则返回一个货币代码数组。如果指定了$concat
为字符串,则返回一个由$concat
连接的字符串。
Response
参考
这是从fetch()
返回的默认对象。以下是Response
对象上可用的方法列表
getStatusCode()
:
返回请求的状态代码(通常是200
)。
getTimestamp()
:
返回响应生成的时间戳(以ISO 8601表示法格式化)。
getBaseCurrency()
:
返回请求的基本货币。如果请求中没有指定使用 setBaseCurrency
的基本货币,则将返回默认值(EUR
)。
getRates()
:
返回与请求匹配的汇率的关键字/值数组,例如
[ 'GBP' => 1, 'EUR' => 1.1 ]
getRate( string $code )
:
检索特定货币的汇率,或者如果响应中只有一个汇率,则返回该汇率。
5. 支持的货币
该库支持欧洲中央银行网络服务中当前可用的任何货币,可以在这里找到。
6. 需求
该库需要PHP >= 7.0。没有其他平台要求,但该库依赖于Guzzle。
7. 错误 & 功能
如果您发现了任何错误,或者想从库中请求额外的功能,请通过项目的Github页面上的问题跟踪器提交问题:https://github.com/benmajor/ExchangeRatesAPI/issues。
8. 许可证
根据MIT许可证许可。
特此授予任何获得本软件及其相关文档文件(“软件”)副本的人免费处置该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供者提供软件的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是基于合同、侵权或其他方式引起的,是否与软件或软件的使用或其他交易有关。