应该由前端还是后端处理货币转换?

thi*_*osa 1 architecture frontend currency backend

我有一个市场,人们可以在其中以本国货币出售他们的产品。来自世界各地的人们都可以购买他们的产品,但始终以产品卖家的货币收费。

因此,如果德国卖家向英国某人出售商品,英国买家将以欧元支付。

但我希望用户能够看到以当地货币表示的价格,并且他们可以通过某些界面选择当地货币。

所以我的问题是:谁应该拥有货币兑换权?

后端是否应该仅以“原始”货币(卖方定义的货币)存储“原始”价格,而前端根据用户的偏好处理货币转换?或者后端应该处理转换并将任何货币的价格提供回前端?

从可扩展性的角度来看,我们目前只使用几种不同的货币,但我们计划扩展到几种新的货币(可能是几十种)。

我们的产品涉及网站、iOS 和 Android 原生应用程序,它们都应该以相同的方式工作。

小智 5

我认为这应该在后端完成。

  1. 每种新货币都不需要新版本的 Android/iOS 应用程序,因此这会很快完成。

  2. 前端的货币转换和验证是否可以以某种方式“黑客攻击”?这只是客户端脚本,因此后端验证是必须的。如果验证是必须的,那么后端的转换就会以自然的方式进行,对吗?

  3. 您必须有一些 API 来告诉您当前欧元/美元/等的价格是多少。保存在前端的“静态”值(例如“1.20 是欧元兑美元汇率”)可能会对不稳定的货币造成一些麻烦。所以也许有一些带有货币价格的第三方API,但在前端你每次都需要询问货币价格。在后端,这将位于一个位置并可能被缓存。从后端到货币 API 的 API 调用每天将完成 1/2 次,来自前端的 API 调用可能会破坏您在货币 API 上的定价计划,因此无法正确优化。