benmajor/exchange-rates-api

ExchangeRatesAPI 的非官方 SDK。 (https://exchangeratesapi.io/)

4.2.1 2024-05-08 21:03 UTC

This package is auto-updated.

Last update: 2024-09-08 21:38:07 UTC


README

Latest Version Packagist Software License

这是一个免费、优秀的 ExchangeRatesAPI 的非官方包装器,它提供了由 欧洲中央银行 提供的汇率查询服务。它具有许多有用的功能,并且可以使用 Composer 轻松安装。

4.0.0 更新
由于 ExchangeRatesAPI 的定价变化,本项目现在使用 ExchangeRates.host 作为其 API 提供商。现在应将其视为非官方 SDK。4.0.0 应与依赖于已不再免费的 ExchangeRatesAPI 的旧版本向后兼容。

目录

  1. 安装
  2. 入门
  3. API 参考
  4. 支持货币
  5. 要求
  6. 错误与功能
  7. 许可

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 ):
返回支持的货币代码列表。如果$concatnull,则返回一个货币代码数组。如果指定了$concat为字符串,则返回一个由$concat连接的字符串。

getRates( string $concat = null ):
返回当前指定的要检索的汇率列表。如果$concatnull,则返回一个货币代码数组。如果指定了$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许可证许可。

特此授予任何获得本软件及其相关文档文件(“软件”)副本的人免费处置该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供者提供软件的人这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是基于合同、侵权或其他方式引起的,是否与软件或软件的使用或其他交易有关。