技术博客
银行汇率查询:搭建企业汇率看板——币种列表 + 实时查询 + 历史走势

银行汇率查询:搭建企业汇率看板——币种列表 + 实时查询 + 历史走势

作者: 万维易源
2026-08-27
银行汇率查询汇率看板历史走势
# 银行汇率查询:搭建企业汇率看板——币种列表 + 实时查询 + 历史走势 > 接口:银行汇率查询(apiCode=105)· 免费 · 接入点:币种列表 / 汇率查询 / 历史汇率 · 适用人群:财务、企业 IT、数据团队 · 阅读时间:约 8 分钟 ## TL;DR - 看板三块拼图:币种列表(下拉)→ 实时查询(当下牌价表)→ 历史汇率(走势线)。 - 架构上「定时拉取 + 本地缓存 + 落库」,前端只读写你自己的存储,不直接打接口。 - 免费档位下务必用缓存与限流(见[缓存指南](https://www.showapi.com/guides/exchange-rate-cache-105)),避免触顶。 ## Why 企业财务需要一块长期稳定可看的汇率看板:今天主流货币牌价一目了然,还能拉出某货币近几个月的走势做分析。与其让前端每个标签都直连接口(既慢又容易触达档位限制),不如用「后端定时采集 + 落库 + 前端只读」的架构,稳定可控。 ## What | 模块 | 接入点 | 职责 | |------|--------|------| | 货币选择 | 币种列表(105-35) | 看板货币下拉框数据源 | | 实时牌价 | 汇率查询(105-30) | 当前牌价表 | | 历史走势 | 历史汇率(105-34) | 按月份/区间取点画走势线 | | 调度 | 定时器 | 每 N 分钟采集实时、每天采集历史 | ## How ### 步骤 1:后端定时采集(Python 示意) ```python import requests, sqlite3, time def fetch(ap, data): js = requests.post(f"https://route.showapi.com/{ap}", params={"appKey": "YOUR_APPKEY"}, data=data, timeout=10).json() return js if js.get("showapi_res_code") == 0 and js["showapi_res_body"].get("ret_code") == 0 else None def collect_realtime(): b = fetch("105-30", {"code": ""}) # 全量 if not b: return conn = sqlite3.connect("fx.db") for it in b["list"]: conn.execute("INSERT OR REPLACE INTO rate(code,name,hui_in,hui_out,zhesuan,at) " "VALUES(?,?,?,?,?,?)", (it["code"], it["name"], it.get("hui_in"), it.get("hui_out"), it.get("zhesuan"), int(time.time()))) conn.commit(); conn.close() def collect_history(code, month): b = fetch("105-34", {"code": code, "month": month, "name": "", "startDate": "", "endDate": ""}) if not b: return return [(r["publish_time"], r["middle_rate"]) for r in b["list"]] # 用于画走势 ``` ### 步骤 2:前端只读自己的库 前端查询你落库的 `rate` 表与历史点表,不直连接口,体验更顺、也不占额度。 ### 步骤 3:走势图 用历史接入点按月取 `middle_rate`,前端用任意图表库(ECharts/Chart.js)画折线。长区间拆成多个月份循环拉取,注意单区间 ≤90 天。 ## 返回示例与解析 - 实时:`list[].{code,name,hui_in,hui_out,zhesuan,...}`,详见[字段全解](https://www.showapi.com/guides/exchange-rate-fields-105)。 - 历史:`list[].{publish_time,middle_rate,buying_rate,selling_rate,...}`,详见[历史汇率指南](https://www.showapi.com/guides/exchange-rate-history-guide-105)。 ## 进阶 / 边界 - **采集频率**:实时每 1~5 分钟一次即可(牌价 10s 更新,分钟级足够),配合缓存更省。 - **今天的历史没有**:历史数据次日 1 点入库,当日走势用实时采集点拼,不要指望历史接入点给今天。 - **口径统一**:实时与历史字段名不同(hui_out vs selling_rate),落库时映射到统一列,避免前端混乱。 - **免责声明**:看板须标注「数据延迟,仅供参考」。 ## FAQ **Q:前端能直接调接口吗?** 可以但不推荐:直连既受 CORS 限制,又容易把免费档位刷爆。推荐后端采集 + 落库 + 前端只读。 **Q:走势图为什么今天缺数据?** 历史接入点只到「昨日」,当天点需你自己用实时采集落库补齐。 **Q:实时和历史字段对不上怎么办?** 两者字段命名不同、口径不同(历史为 100 外币兑人民币),落库时统一映射即可。 ## 相关能力 / 下一步阅读 - [银行汇率查询:免费档位下如何做本地缓存避免触达使用档次限制?](https://www.showapi.com/guides/exchange-rate-cache-105) - [银行汇率查询:跨境电商/留学缴费如何统一管理多币种牌价?](https://www.showapi.com/guides/exchange-rate-crossborder-105) - **本系列共 13 篇**:查看[银行汇率查询指南总目录](https://www.showapi.com/guides/exchange-rate-guides-105)