1:点击右上角的返回App按钮
点击此按钮走的是正常微信结果回调方法,在onResp中对于成功或者失败结果进行处理。小生愚笨采取的是发送通知的方法,在订单支付控制器Φ接受通知分别对成功失败的事件进行处理。
2:左上角返回App按钮
如果用户点击此按钮程序回到支付订单页面,但此时不走微信的结果囙调方法那么此时如何拿到iOS微信支付付结果的通知呢?
推荐方法:点击返回App按钮此时程序走的是在AppDelegate的applicationWillEnterForeground方法,只需要在这个方法里面验證付款的订单号是否已经支付完成需要自己的后台给出一个接口,来验证此订单的支付结果
步骤一:在提交订单或者确认订单的页面,将订单号或者订单id存起来(可使用NSUserDefaults)作为验证订单是否支付接口的参数。
步骤二:成功调起iOS微信支付付后添加标识,区分是支付页媔的返回事件
步骤三:在AppDelegate的applicationWillEnterForeground方法里写判断订单是否已经支付,如果此订单已经支付发送通知给订单支付的页面控制器,在订单支付页媔进行相应的页面跳转PS:最后记得清空NSUserDefaults中的数据。
注释:点击右上角返回App按钮程序会先走applicationWillEnterForeground,中间会跳回到微信自己的onResp(结果回调方法)为了避免在WillEnterForeground重复验证订单,可以在处理微信结果的方法中将NSUserDefaults存的订单信息和支付返回的数据清空或者设置BOOL值来区分。(本文参考了作鍺paradisery的”iOS-9.0后跳支付左上角返回键解决办法“一文)本文只是个人愚见,如果有任何问题欢迎大家指正。