一、汇率接口全景
汇率查询 API 通常提供四个子接口,覆盖从币种枚举到银行牌价的完整场景:
| 所有货币种类列表 | /list | 获取系统支持的所有币种代码和名称 |
| 实时汇率查询换算 | /index | 指定两种货币和金额,实时换算 |
| 单个货币汇率列表 | /single | 一次请求获取某币种对所有其他货币的汇率 |
| 银行汇率实时查询 | /bank | 获取指定银行的实时外汇牌价 |
这四个接口组合起来,可以满足绝大多数汇率相关的业务需求。
二、子接口详解
2.1 货币种类列表(/list)
获取系统支持的所有货币代码。适合在系统初始化时调用一次,缓存到 Redis,前端下拉框的币种选项直接从缓存读取。
import urllib3
import json
host = 'https://market.aliyun.com/detail/cmapi00065831'#地址
path = '/list'
appcode = '你的AppCode'
http = urllib3.PoolManager()
headers = { 'Authorization': 'APPCODE ' + appcode }
response = http.request('GET', host + path, headers=headers)
content = json.loads(response.data.decode('utf-8'))
if content.get('code') == 1:
for item in content['data']['list']:
print(f"{item['currency']} – {item['name']}")
返回的 data.list 是一个数组,每个元素包含 currency(货币代码)和 name(中文名称)。目前支持的币种通常有一百多种。
2.2 实时汇率查询换算(/index)
最常用的接口。传入源币种、目标币种和金额,直接返回换算结果。
querys = 'from=CNY&to=USD&money=100'
url = host + '/index' + '?' + querys
response = http.request('GET', url, headers=headers)
data = json.loads(response.data.decode('utf-8'))['data']
print(f"汇率: 1 {data['from']} = {data['exchange']} {data['to']}")
print(f"换算结果: {data['money']} {data['to']}")
print(f"更新时间: {data['updatetime']}")
参数说明:
| from | 是 | 源货币代码,如 CNY |
| to | 是 | 目标货币代码,如 USD |
| money | 否 | 要换算的金额,默认 1 |
2.3 单个货币汇率列表(/single)
一次请求可以拿到某个币种对所有其他货币的汇率。适合做"人民币对全球主要货币汇率一览"的页面,避免前端循环请求多个币种对。
querys = 'from=CNY'
url = host + '/single' + '?' + querys
response = http.request('GET', url, headers=headers)
data = json.loads(response.data.decode('utf-8'))['data']
print(f"基准货币: {data['currency']} {data['name']}")
for code, info in data['list'].items():
print(f" {code} ({info['name']}): {info['rate']}")
2.4 银行汇率实时查询(/bank)
查询银行的实时外汇牌价,包含汇买、汇卖、钞买、钞卖四个价格。
querys = 'bank_code=ICBC' # 工商银行
url = host + '/bank' + '?' + querys
response = http.request('GET', url, headers=headers)
data = json.loads(response.data.decode('utf-8'))['data']
print(f"银行: {data['name']}")
print(f"发布时间: {data['time']}")
for item in data['code_list']:
print(f" {item['code']} {item['name']}")
print(f" 汇买: {item['hui_in']} | 汇卖: {item['hui_out']}")
print(f" 钞买: {item['chao_in']} | 钞卖: {item['chao_out']}")
银行简码:ICBC(工商银行)、BOC(中国银行)、CCB(建设银行)等。
| hui_in | 汇买价——银行买入外汇的价格 |
| hui_out | 汇卖价——银行卖出外汇的价格 |
| chao_in | 现钞买入价 |
| chao_out | 现钞卖出价 |
跨境结算时实际换汇成本用的是 hui_out。
三、组合使用场景
| 海淘商品定价 | /index 做美元→人民币换算 |
| 汇率看板 | /single 批量展示主要货币汇率 |
| 换汇决策参考 | /bank 对比不同银行的牌价差价 |
| 多币种结算 | /list 获取币种列表 + /index 逐对换算 |
四、总结
汇率数据在跨境业务里是一个"平时感觉不到,出问题时很痛"的隐性依赖。接入前做好选型评估,接入后做好限流、精度和缓存处理,日常使用基本不会有太大问题。





