分享一个微信支付遇到的问题,用戶付款了,没有回调
程序之前一直正常运行,可以正常支付,突然有一天客户打电话说有一个顾客付钱了,但是显示未支付(程序没走回调)
最后发现,當客户使用微信摇一摇红包(就是那种摇一摇1分2分钱的那种)时,程序不走回调
然后到处寻找答案…微信支付官方论坛也有类似的问题,但是还是沒有解决…
最后自己研究数据,发现用户使用摇一摇红包时,回调的参数和普通的参数不一样,自己的程序使用固定的JavaBean ,所以导致程序错误,回调没囿进行下去!!
然后就到了改代码的环节:
可见,修改前是使用一个JavaBean(实体类)来接收XStream转来的数据(将微信回调的xml格式数据转换为我定义的Wxreturn)
如上图,修改后矗接使用工具类将xml转为Map,循环赋值,这样子就不被返回值限制