reaway/boc-cny-quote

Bank of China CNY quote

Maintainers

Package info

github.com/reaway/boc-cny-quote

pkg:composer/reaway/boc-cny-quote

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-03-28 04:24 UTC

This package is auto-updated.

Last update: 2026-03-28 04:26:30 UTC


README

PHP Version License

一个用于获取中国银行人民币汇率数据的 PHP 库,支持多种数据源(桌面版网页、移动版网页、微信小程序、聚合数据 API)。

功能特性

  • 支持多种数据源:
    • desktop - 中国银行桌面版网页(默认)
    • mobile - 中国银行移动版网页
    • we_chat_mini_program - 中国银行微信小程序接口
    • juhe - 聚合数据 API(需要申请 API Key)
  • 支持门面(Facade)模式调用
  • 支持获取所有汇率或指定货币汇率
  • 支持现汇买入价、现钞买入价、现汇卖出价、现钞卖出价、中行折算价

安装

composer require reaway/boc-cny-quote

环境要求

  • PHP >= 8.1
  • 扩展:bcmath、dom、mbstring

支持的货币

货币代码 货币名称 货币代码 货币名称
AED 阿联酋迪拉姆 AUD 澳大利亚元
BND 文莱元 BRL 巴西雷亚尔
CAD 加拿大元 CHF 瑞士法郎
CZK 捷克克朗 DKK 丹麦克朗
EUR 欧元 GBP 英镑
HKD 港币 HUF 匈牙利福林
IDR 印尼卢比 ILS 以色列谢克尔
INR 印度卢比 JPY 日元
KHR 柬埔寨瑞尔 KRW 韩国元
KWD 科威特第纳尔 MNT 蒙古图格里克
MOP 澳门元 MXN 墨西哥比索
MYR 林吉特 NOK 挪威克朗
NPR 尼泊尔卢比 NZD 新西兰元
PHP 菲律宾比索 PKR 巴基斯坦卢比
QAR 卡塔尔里亚尔 RSD 塞尔维亚第纳尔
RUB 卢布 SAR 沙特里亚尔
SEK 瑞典克朗 SGD 新加坡元
THB 泰国铢 TRY 土耳其里拉
TWD 新台币 USD 美元
VND 越南盾 ZAR 南非兰特

使用方法

基础用法

use BocCnyQuote\CnyQuote;

require dirname(__DIR__) . '/vendor/autoload.php';

$config = [
    'default' => 'desktop', // 默认驱动:desktop、mobile、we_chat_mini_program、juhe
    'sources' => [
        'juhe' => [
            'key' => 'your-api-key', // 聚合数据 API 访问密钥
        ],
    ],
];

$cnyQuote = new CnyQuote($config);

// 获取所有汇率
$quotes = $cnyQuote->getQuotes();
var_dump($quotes);

// 获取指定货币的汇率
$usdQuote = $cnyQuote->getQuote('USD');
var_dump($usdQuote);

// 切换到其他数据源
$mobileQuotes = $cnyQuote->source('mobile')->getQuotes();
var_dump($mobileQuotes);

使用门面(Facade)

use BocCnyQuote\Facade\CnyQuoteFacade;
use Think\Component\Config\Facade\ConfigFacade;

require dirname(__DIR__) . '/vendor/autoload.php';

$config = [
    'default' => 'desktop',
    'sources' => [
        'juhe' => [
            'key' => 'your-api-key',
        ],
    ],
];
ConfigFacade::set($config, 'boc_cny_quote');

// 获取所有汇率
$quotes = CnyQuoteFacade::getQuotes();
var_dump($quotes);

// 获取指定货币的汇率
$usdQuote = CnyQuoteFacade::getQuote('USD');
var_dump($usdQuote);

// 切换数据源
$mobileQuotes = CnyQuoteFacade::source('mobile')->getQuotes();
var_dump($mobileQuotes);

配置说明

配置项 类型 说明
default string 默认数据源驱动,可选值:desktop、mobile、we_chat_mini_program、juhe
sources.juhe.key string 聚合数据 API 访问密钥(仅在 juhe 驱动时需要)

数据源说明

desktop(桌面版网页)

mobile(移动版网页)

we_chat_mini_program(微信小程序)

  • 数据源:中国银行微信小程序接口
  • 特点:数据实时,无需 API Key

juhe(聚合数据)

返回数据格式

[
    'USD' => [
        'currency_name' => '美元',           // 货币名称
        'currency_code' => 'USD',           // 货币代码
        'exchange_buy' => 723.45,           // 现汇买入价
        'cash_buy' => 717.89,               // 现钞买入价
        'exchange_sell' => 726.59,          // 现汇卖出价
        'cash_sell' => 726.59,              // 现钞卖出价
        'bank_conversion' => 724.52,        // 中行折算价
        'publish_time' => '2024-01-15 09:30:00', // 发布时间
    ],
    // ... 其他货币
]

API 方法

CnyQuote 类

方法 说明
getQuotes(): array 获取所有人民币汇率数据
getQuote(string $currency): array|null 获取指定货币的人民币汇率
source(string|null $name): CnyQuoteAbstract 获取指定驱动实例
getResponse(): string 获取数据源响应内容(原始数据)
getSourceUrl(): string 获取数据源 URL

许可证

Apache-2.0 License. 详情请查看 LICENSE 文件。