问题背景:
微信APP支付需要与包名、签名绑定,因此客户端使用微信H5支付,可以避开大量马甲包支付问题
使用微信H5支付偶尔会出去以下问题:
意思是说在支付过程中,用户的ip有变动,从而导致支付失败!!
为了测试这个问题开始采坑:
1、模拟支付过程ip变动
2、故意提交错误ip给微信
结果:支付失败,出现上图
奇怪的问题出现了:
1、使用同一个网络,调起支付。在支付过程中ip应该不会变化的,但为何出现了上图失败的情况????
2、联想到有关ip问题,ipv4&ipv6。
结果:原来服务端不支持ipv6,但微信拿到的ip是ipv6,从而导致ip不一致。
解决方案:
方法1:禁用客户端的ipv6
方法2:服务端支持ipv6
后续发现:提交随意ip地址,发现支付成功!! 猜想微信修改了这个网络校验
延伸问题:微信登录授权时长是否和ipv6有关??