APP 支付宝支付 预下单 缓存参数

2020-07-14  本文已影响0人  归隐小赵

接入app支付,使用postman或者浏览器等工具测试接口,是没问题的,每次都是新订单 order
请求方式:get
安卓库:okhttp
使用APP是异常,一直是一个返回值
排查:
1.PHP后端bug,使用postman同步请求20次,返回值每次不一样
2.安卓连续请求20次,返回值均一致

3.PHP后端增加时间戳字段,APP请求20次,时间戳全部一致

初步定位缓存问题,但APP否认有缓存

4.清除APP数据,重新预下单,首次返回值不一致,再次调用一致

5.考虑可能为类似浏览器的get缓存机制,增加单位随机数参数

结果:20次,有4个不一样的结果,看随机数,为1位时间戳

更新:更改为6位时间戳

结果:20次结果每次都不一样,问题解决。
定位问题:okhttp默认为get缓存,post或https不缓存:

默认情况下,一般认为使用GET通过HTTP访问的请求可以缓存,也应当缓存。使用HTTPS或POST访问的请求不应当缓存。OKHttp也是这样设计的,OKHttp默认不支持Post缓存。
所以,问题出在这里

参考文章:
https://www.jianshu.com/p/cc6a36df774a
https://www.cnblogs.com/hehe520/p/6329977.html

上一篇下一篇

猜你喜欢

热点阅读