多货币金额计算
1. 简介
1.1 案例简介
多货币金额计算插件通过对接实时汇率接口,自动抓取子表单中不同币种金额(如美元、欧元、加密货币等),一键换算为指定结算货币并生成总金额,告别手动逐条计算与汇率更新滞后风险,解决多国采购订单中货币分散核算难题,
1.2 业务背景
在国际贸易与跨境电商等业务中,需要频繁处理多国供应链采购订单,这就使得货币金额需要根据实时汇率进行计算。然而当前的货币计算方式存在以下痛点:
- 手动换算效率低:业务人员需逐个查询汇率并计算,重复操作耗时,易因货币代码混淆出错;
- 汇率波动与人工误差风险高:系统未能及时更新汇率或输入错误导致成本核算偏差,审计追溯困难;
- 多源数据分散难整合:不同表单的货币金额孤立,人工汇总耗时厂,决策信息滞后;
- 小众货币与新兴需求不支持:现有工具无法覆盖主流货币,无法适配加密货币、区域小众币种等场景。
1.3 设计思路
1)新建「多货币金额计算」表单,用于录入用户提供的货币信息,如:货币小计金额、转换前后货币币种等;
2)开发自建插件「多货币金额计算」,用于将当前货币金额转换为用户指定的货币金额,具体包括:
- 设置请求参数,确保能够获取到用户所输入的货币信息;
- 设置返回参数,将通过代码计算出的货币金额返回给用户;
- 进行代码编辑,将当前货币金额转换为用户指定的货币金额。
3)在表单中设置前端事件,调用自建插件「计算货币汇率」,从而实现将计算出的货币金额回写在表单中的效果。
1.4 预期效果
以将人民币计算转换为港币为例,效果如下所示:

2. 表单搭建
在学习之前建议安装 计算货币汇率应用模板,本文将按照模板中的示例数据进行讲解。
新建「物资采购表」表单,所需字段及字段设置如下所示:
字段名称 | 字段类型 | 字段设置 |
采购明细 | 子表单 | —— |
物资名称 | 单行文本 | |
单价 | 数字 | |
采购数量 | ||
货币 | 下拉框 | |
小计 | 数字 | 在「字段属性 >> 默认值」处选择「公式编辑」,设置公式如下: 采购明细.单价*采购明细.采购数量 |
汇总货币 | 下拉框 | —— |
是否开始计算 | 按钮 | |
总金额 | 单行文本 |

3. 自建插件设计
3.1 新建自建插件
在「开放平台 >> 开发者后台 >> 自建插件」处,点击「新建插件」,并在「插件设计」页面中修改自建插件的名字为「多货币金额计算」。

3.2 新建函数
进入「插件设计」页面中,系统默认添加一个后端函数,点击函数右侧的三个小圆点,选择「编辑名称」,并修改函数名称为「计算货币」。

3.3 设置参数
3.3.1 设计请求参数
点击「请求参数」,在页面中添加并设置字段控件,如下所示:
字段名称 | 字段类型 | 字段设置 |
子表单 | 子表单 | 在右侧字段信息处,修改 ID 为 subform_data |
货币 | 下拉框 | 在右侧字段信息处,修改 ID 为 currency |
金额 | 数字 | 在右侧字段信息处,修改 ID 为 amount |
最终货币 | 下拉框 | 在右侧字段信息处,修改 ID 为 target_currency |

3.3.2 设计返回参数
点击「返回参数」,添加返回参数,并进行如下设置:
- 修改显示名称为「返回参数」;
- 修改 ID 为「final_total」;
- 选择类型为「any」。

3.4 编辑代码
请求参数和返回参数都设计完成后,点击「代码」进入代码编辑页面。代码示例如下所示:

import requests
import json
# 获取汇率数据
url = "https://v2.xxapi.cn/api/allrates?key=123456789012345"
headers = {
'User-Agent': 'xiaoxiaoapi/1.0.0 (https://xxapi.cn)'
}
response = requests.get(url, headers=headers)
rates_data = response.json()["data"]["rates"]
subform_data = triggerConf.get('subform_data')
target_currency = triggerConf.get('target_currency')
# 计算转换并汇总总金额
total_amount = 0
for item in subform_data:
from_currency = item["currency"]
amount = item["amount"]
if from_currency == target_currency:
converted_amount = amount
else:
from_rate = rates_data[from_currency]["rate"]
to_rate = rates_data[target_currency]["rate"]
converted_amount = amount * (to_rate / from_rate)
total_amount += converted_amount
# 最终总金额
final_total = float(round(total_amount, 2))
return {"final_total": final_total}3.5 保存并启用
参数和代码都设计完成后,点击右上角的「保存」按钮,并返回至「自建插件」页面中,打开「多货币金额计算」右侧开关,即可启用插件。

4. 调用插件
4.1 添加按钮执行动作
进入「物资采购」表单中,点击「是否开始计算」按钮,在「字段属性 >> 执行动作」处点击「设置」,添加一个前端事件。

4.2 设置事件名称和说明
添加好前端事件后,首先设置前端事件的基础信息,即事件名称和事件说明,用于区分前端事件。设置完成后,点击「下一步」。

4.3 设置执行动作
设置执行动作如下:
- 选择插件:选择「多货币金额计算」插件;
- 子表单:选择赋值方式为「按子表单赋值」,并选择子表单为「采购明细」,详细设置如下:
- 货币:设置为「字段值」,即「采购明细.货币」字段;
- 金额:设置为「字段值」,即「采购明细.小计」字段;
- 最终货币:设置为「字段值」,即「汇总货币」字段;
- 字段存储关系:点击添加按钮,将「返回参数」的值存储到「总金额」中。
全部设置完成后,点击「保存」按钮。

4.4 效果演示
效果参见本文【1.3 预期效果】。
5. 共创伙伴
诚挚感谢个人共创伙伴余绪东老师为简道云生态提供的插件案例!该插件以实时汇率对接+多币种智能转换能力,直击跨境业务中货币分散核算的顽疾,有效规避汇率波动风险与人工误差,成为企业全球化运营的数字算力底座。进一步验证了自建插件无需依赖复杂系统,通过轻量化工具即可将高频痛点转化为高效解决方案,彰显了开放平台以小工具撬动大场景的无限潜力。
立即探索自建插件,解锁属于您的数字化创新力!

400-111-0890
在线咨询