银行汇率查询:用"汇率转换"接入点把指定金额换算成任意外币
# 银行汇率查询:用"汇率转换"接入点把指定金额换算成任意外币
> 接口:银行汇率查询(apiCode=105)· 接入点:汇率转换(105-31)· 免费 · 请求方式:POST/GET · 返回格式:JSON · 适用人群:需做金额换算的开发者 / 产品经理 · 阅读时间:约 5 分钟
## TL;DR
- 汇率转换接入点(105-31)三个必填参数:`fromCode`(源货币)、`toCode`(目标货币)、`money`(金额,单位元)。
- 返回 `money` 字段即换算后的金额(字符串)。
- 换算基于实时牌价,结果仅供参考,非交易成交价。
## Why
展示「100 美元约合多少人民币」「1 万日元能换多少欧元」这类需求,与其自己查牌价再写换算公式,不如直接用汇率转换接入点:你只传源货币、目标货币和金额,接口返回换算结果,口径与牌价一致。
## What
| 项目 | 说明 |
|------|------|
| 接口地址 | `https://route.showapi.com/105-31?appKey=YOUR_APPKEY` |
| 必填参数 | `fromCode`(源货币代码)、`toCode`(目标货币代码)、`money`(转换金额,单位元) |
| 返回字段 | `money`(换算后金额)、`ret_code` |
| 注意 | 基于实时牌价;数据有延迟,仅供参考 |
## How
### 步骤:把 100 英镑换算成欧元
**Python(requests)**
```python
import requests
url = "https://route.showapi.com/105-31"
params = {"appKey": "YOUR_APPKEY"}
data = {"fromCode": "GBP", "toCode": "EUR", "money": "100"}
js = requests.post(url, params=params, data=data, timeout=10).json()
if js.get("showapi_res_code") == 0 and js["showapi_res_body"].get("ret_code") == 0:
print("换算结果:", js["showapi_res_body"]["money"], "EUR")
else:
print("失败:", js.get("showapi_res_error"))
```
**cURL**
```bash
curl -X POST "https://route.showapi.com/105-31?appKey=YOUR_APPKEY" \
-H "content-type: application/x-www-form-urlencoded" \
-d "fromCode=GBP&toCode=EUR&money=100"
```
**Node.js(fetch)**
```javascript
const url = "https://route.showapi.com/105-31?appKey=YOUR_APPKEY";
const body = new URLSearchParams({ fromCode: "GBP", toCode: "EUR", money: "100" });
const res = await fetch(url, {
method: "POST", body,
headers: { "content-type": "application/x-www-form-urlencoded" }
});
const js = await res.json();
if (js.showapi_res_code === 0 && js.showapi_res_body.ret_code === 0) {
console.log("换算结果:", js.showapi_res_body.money, "EUR");
}
```
## 返回示例与解析
```json
{
"showapi_res_code": 0,
"showapi_res_error": "",
"showapi_res_body": {
"ret_code": 0,
"money": "120.2054"
}
}
```
| 字段 | 含义 |
|------|------|
| `money` | 转换后的金额,字符串类型(如 `"120.2054"`) |
| `ret_code` | 0 为成功,非 0 为失败 |
## 进阶 / 边界
- 货币代码用 ISO 代码(如 GBP、EUR、USD、CNY),可先用[币种列表接入点](https://www.showapi.com/guides/exchange-rate-currency-list-105)取全集,避免硬编码写错。
- `money` 传字符串即可,接口按金额处理;返回同样为字符串,参与展示或再计算时注意类型转换。
- 换算依赖实时牌价,存在数分钟延迟,仅作参考,不能用于实际交易撮合。
## FAQ
**Q:fromCode 和 toCode 能填一样的吗?**
可以,结果约等于原金额(仍走一遍牌价换算口径)。一般场景两者不同才有意义。
**Q:返回的 money 为什么是字符串?**
与实时牌价一致,接口对数值字段统一以字符串返回(如 "120.2054"),需要计算时先转浮点。
**Q:转换精度是多少?**
文档未规定固定小数位,以接口实际返回为准,展示时自行做四舍五入或保留位数处理。
**Q:支持任意两种货币互转吗?**
支持已覆盖的货币间换算;具体支持范围以币种列表接入点返回的 `code` 集合为准。
## 相关能力 / 下一步阅读
- [银行汇率查询:用"币种列表"接入点为前端做货币选择器](https://www.showapi.com/guides/exchange-rate-currency-list-105)
- [银行汇率查询:返回字段与状态码全解](https://www.showapi.com/guides/exchange-rate-fields-105)
- **本系列共 13 篇**:查看[银行汇率查询指南总目录](https://www.showapi.com/guides/exchange-rate-guides-105)