银行汇率查询:汇率转换只需 3 个必填参数

约 11 分钟 入门银行汇率查询汇率转换金额换算Python示例
# 银行汇率查询:汇率转换只需 3 个必填参数 接口:银行汇率查询(apiCode=105)· 接入点:汇率转换(105-31)· 免费(L0 基础版 100 次/天、1 QPS)· 请求方式:POST / GET · 返回格式:JSON · 适用人群:需要做金额换算的开发者、产品经理 · 阅读时间:约 5 分钟 · 最后实测核对:2026-09-18 ## 核心要点 - 汇率转换接入点(105-31)只有三个必填参数:`fromCode`、`toCode`、`money`,`money` 的单位是元。 - 除文档列出的 `money` 和 `ret_code` 外,实测返回体里还有一个 `rate` 字段,可以直接拿来展示换算比例。 - 换算双向可用,换算用的价格是源货币的现汇买入价,实测结果与 105-30 的牌价能对上。 ## 自己算还是让接口算 查完牌价之后,下一个问题通常是:`100` 美元折合人民币多少?你可以拿 105-30 的 `hui_in` 自己乘一遍,也可以直接把三个参数丢给 105-31。区别在于口径由谁负责——接口返回的换算结果与牌价同源,你不用自己去核对该用买入价还是卖出价。 `money` 的单位是元,这一条在文档里写明,参数名容易让人误以为可以传任意单位的金额。 ## 接口速览 | 项目 | 说明 | |------|------| | 接口地址 | `https://route.showapi.com/105-31?appKey={your_appKey}` | | 必填参数 | `fromCode`(源货币代码)、`toCode`(目标货币代码)、`money`(转换金额,单位元) | | 返回字段 | `money`(转换后的金额)、`rate`(换算比例,实测存在)、`ret_code` | | 请求方式 | POST / GET,同步 | | 计费 | 免费接口,注册即享 L0 基础版(100 次/天、1 QPS) | | 超时设置 | OpenAPI 文档标注 `x-read-timeout` 15 秒、`x-connect-timeout` 15 秒 | ## 两种换算方向的调用代码 下面三段代码都换算 USD 与 CNY,把 `YOUR_APPKEY` 换成自己的值即可运行。 Python(requests): ```python import requests url = "https://route.showapi.com/105-31" params = {"appKey": "YOUR_APPKEY"} data = {"fromCode": "USD", "toCode": "CNY", "money": "100"} try: js = requests.post(url, params=params, data=data, timeout=15).json() if js.get("showapi_res_code") == 0 and js["showapi_res_body"].get("ret_code") == 0: body = js["showapi_res_body"] print("换算结果:", body.get("money"), "CNY") print("使用比例:", body.get("rate")) else: print("调用失败:", js.get("showapi_res_error"), js["showapi_res_body"].get("ret_code")) except requests.RequestException as exc: print("请求异常:", exc) ``` cURL: ```bash curl -X POST "https://route.showapi.com/105-31?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "fromCode=USD&toCode=CNY&money=100" ``` Node.js(fetch): ```javascript const url = "https://route.showapi.com/105-31?appKey=YOUR_APPKEY"; const body = new URLSearchParams({ fromCode: "USD", toCode: "CNY", money: "100" }); const res = await fetch(url, { method: "POST", body, headers: { "content-type": "application/x-www-form-urlencoded" }, signal: AbortSignal.timeout(15000) }); 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, "CNY"); console.log("使用比例:", js.showapi_res_body.rate); } else { console.error("调用失败:", js.showapi_res_error, js.showapi_res_body.ret_code); } ``` ## 返回示例与解析 2026-09-18 实测 `fromCode=CNY&toCode=USD&money=100` 的真实返回: ```json { "showapi_res_error": "", "showapi_res_code": 0, "showapi_fee_num": 1, "showapi_res_body": { "rate": "0.149341", "ret_code": 0, "money": "14.9341" } } ``` 同一天实测反向的 `fromCode=USD&toCode=CNY&money=100`: ```json { "showapi_res_body": { "rate": "6.696100", "ret_code": 0, "money": "669.6100" } } ``` | 字段 | 含义 | |------|------| | `money` | 转换后的金额,字符串 | | `rate` | 本次换算使用的比例,字符串,文档未列出但实测存在 | | `ret_code` | 0 为成功,其他为失败 | `rate` 字段是这个接入点在文档之外的一个返回值。做汇率展示时可以直接读它,不用自己用 `money` 除以原金额。`money` 与 `rate` 都以字符串返回,送进展示层之前按需要转数值。 ## 换算口径验证 用 105-30 的牌价可以核对 105-31 的换算结果。2026-09-18 实测 105-30 返回的美元 `hui_in` 是 `669.61`,对应 `rate` 为 `6.6961`。100 美元按这个价格换算得到 `669.6100`,与 105-31 的返回一致;100 元人民币反向换算得到 `14.9341`,等于 `100 ÷ 6.6961`。两处数据互相验证,说明换算用的是源货币的现汇买入价。 反过来用这个结论可以自检:如果你的业务需要按现汇卖出价换算,就先用 105-30 读到 `hui_out`,再自行计算;接口返回的 `money` 走的是现汇买入价口径。 参数里传货币代码时使用 ISO 简码(USD、CNY、GBP、EUR)。可选的代码集合以币种列表接入点(105-35)返回的 `exchange_list[].code` 为准,不要硬编码。 ## FAQ **Q1:`fromCode` 和 `toCode` 可以填成同一种货币吗?** 可以传。结果按同一套牌价换算得出的比例计算。一般场景下两者不同才有实际意义。 **Q2:返回的 `money` 为什么是字符串?** 接口对金额、比例这类数值字段统一以字符串返回,例如 `"14.9341"`。需要参与计算时先转浮点。 **Q3:换算结果保留几位小数?** 文档未规定固定小数位,以实际返回为准。实测 `rate` 为 6 位小数、`money` 为 4 位小数,展示时可按业务需要自行取舍。 **Q4:支持任意两种货币互转吗?** 支持币种列表接入点覆盖到的货币之间换算。具体范围以 `105-35` 返回的 `code` 集合为准。 **Q5:这个换算结果能写进正式账单吗?** 接口数据为延迟数据、仅供参考,正式账单金额以银行实际成交价为准。接口返回值适合做展示与预估。 ## 下一步阅读 - [银行汇率查询返回字段全解(五大价位 / 两层状态码 / 空值情况)](https://www.showapi.com/guides/exchange-rate-fields-105):换算式里的现汇买入价具体指什么。 - [银行汇率查询:用币种列表接入点做货币下拉框](https://www.showapi.com/guides/exchange-rate-currency-list-105):拿到合法的货币代码全集再传参。 - [银行汇率查询:跨境电商与留学缴费的多币种牌价管理](https://www.showapi.com/guides/exchange-rate-crossborder-105):把展示、换算、对账串成一条链路。 - **本系列共 13 篇**:查看[银行汇率查询指南总目录](https://www.showapi.com/guides/exchange-rate-guides-105)
加载中...