PAYATHON 2026

如何配置 Fiware Wstore Billing 计算税费?

数据小许

结论

仅提供税务地址,并不会让 WStore 自动查询或推算税率。要在 billing 中显示并计算税费,需要在 WStore 配置中建立“国家/地区 → 税率”的映射,同时保证税务地址中的国家值与映射键完全一致。

配置方法

在 WStore 使用的 Django 配置文件中设置 TAXES。例如,西班牙的税率为 21% 时,可以这样配置:

TAXES = {
    'Spain': 21
}

如需支持多个国家,可分别设置对应税率:

TAXES = {
    'Spain': 21,
    'France': 20,
    'Germany': 19
}

修改配置后,需要重启 WStore 服务才能生效。具体命令取决于部署方式,如 systemd、Docker、Gunicorn 或其他应用服务器。

为什么传入地址仍然没有税费

税务地址只能帮助 WStore 确定适用的国家或地区,其中并不包含税率规则。WStore 会使用地址中的国家值查找 TAXES 配置。如果没有匹配项,就无法计算对应税额。

假设商品未税价格为 (P),配置税率为 (R),通常按以下公式计算:

[ Tax = P \times \frac{R}{100} ]

[ Total = P + Tax ]

例如,未税价格为 100,税率为 21:

[ Tax = 100 \times \frac{21}{100} = 21 ]

[ Total = 100 + 21 = 121 ]

排查要点

  • TAXES 中的税率通常以百分数填写,例如 21 表示 21%。除非当前 WStore 版本的代码或配置说明明确要求使用小数,否则不要写成 0.21。
  • 税务地址中的国家名称必须与配置键一致。例如,地址返回 Spain 时,配置为 ES 可能无法匹配。
  • 检查大小写、空格和国家名称的语言差异。Spain、SPAIN 和 España 可能会被视为不同的值。
  • 确认修改的是 WStore 实际加载的配置文件,而不是示例文件或尚未启用的环境配置。
  • 修改配置后需要重启应用进程。
  • 如果当前部署版本没有 TAXES 配置项,或者使用了不同的数据结构,应以该版本源码中的税率读取逻辑为准。不能仅凭地址字段,期待 WStore 连接外部税务服务并自动获取税率。

正确的处理方式是先配置税率映射,再传入能够匹配该映射的税务地址。

备注:内容仅供参考。