iOS 微信支付/支付宝支付不通过回调回到APP

2022-07-18  本文已影响0人  路边的风景呢

可能标题是不是明确我在这里解一下,解决的办法有很多 我只记录一下我使用的方法:

问题是 :

1)当用户支付完成以后 没有通过点击支付平台的 “  返回商家 ”  按钮 返回到自己开发的APP。

2)或者是说 通过后台直接打开APP 。

3)或者点击左上角的箭头返回到自己的APP。

以上的情况 是无法监听到第三方平台的支付回调的!所以得想个办法监听!这个时候需要后台来忙了!

1:让后台写一个查询支付状态的接口!是通过订单号查询的,订单号 是通过后台生成并且返回的!

2:通过APP提供系统方法进行监听!具体如下:

    1)在发起支付的时候要先生成订单号,把这个订单号保存在本地 (NSUserDefaults)调用 synchronize 保存在本地!

    2)在   AppDelegate   文件里面监听   applicationWillEnterForeground (即将进入前台)这个方法 发送一个通知,然后到支付页面接受这个通知!

    3)一般来说 都是按可以接受到支付回调的思路来判断的,这个时候就需要在 支付回调的方法里面做支付成功的                          后续操作,有一点就是 在收到支付回调之后一定要把保存在本的订单号置为空!

    4)以上都完成之后 ,就到接受到回到前台的通知了  我延迟了3秒 调用后台的查询订单号的接口,并且是 当本地的订单号不为空的情况下去查询的!这就是为什么上面要把订单号置为空的原因了!如果是按正常逻辑走的!就不会去查询订单号的!

    5)还有一点就是 当退出当前控制器的时候,记得把通知移除掉,避免多次支付的时候,有多个通知!

上一篇下一篇

猜你喜欢

热点阅读