关于这个无效的支付金额问题,我首先百度了一下,基本都是引用了官方文档中的一句话:
交易金额默认为人民币交易,接口中参数支付金额单位为【分】,参数值不能带小数。对账单中的交易金额单位为【元】。
外币交易的支付金额精确到币种的最小单位,参数值不能带小数点。
但是我出现的是另一种情况 :
即,金额是20000119.00,千万级的,
表字段是允许有这么大的长度,然后乘以100,最终获得的total_fee=2000011900,这个金额创建订单,就是失败的状态;
当然,因为我乘以100获得的double,然后又点的intValue(),所以如果金额*100,获得的total_fee超出int的范围,则最终的total_fee值 会变成2147483647,都不是带小数的;
百度了微信支付限额:
然而并没什么卵用;
打电话找微信客服,扯了半天,就问他一个问题:"微信支付在支付接口开发中,对于下单的支付金额有没有做什么限制?(就是我们的total_fee)",然后他就一直给我扯什么个人支付商户支付,也是醉了;傻乎乎的人,没有任何收获!
继续尝试,设置支付金额为1000W,可以唤起微信支付;
1000W以上的,全都是," invalid total_fee ",完全唤不起微信支付;
暂时不清楚具体的状况;
解决方法:
只有把我们商户后台设置支付金额降低到1000W以下,这样就不出现唤不起微信支付的情况了;
这里不考虑什么储蓄卡/信用卡,单日单次支付限额;纯粹是测试瞎玩的,只是为了解决测试测出的bug;