如何配置 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 连接外部税务服务并自动获取税率。
正确的处理方式是先配置税率映射,再传入能够匹配该映射的税务地址。
备注:内容仅供参考。
