场景:
我们通常在设计电商系统的价格字段时,大多数会用decimal(18,5),而且,在业务系统里面,这个字段的最小单位是元。
问题:
那么通过以上的设计,问题来了,微信支付的下单接口上的订单金额字段是要以分为单位,且不能带有小数点,再且要以字符串为主。
API文档是这么说的:总金额 total_fee 是 Int 888 订单总金额,单位为分
解决:
所以,我们要对我们的设计进行换算,下面提供一下我的换算方式:
Convert.ToInt32((decimal) (trade.TotalMoney * 100M)).ToString(CultureInfo.InvariantCulture)
以此记录一下。问题解决!