美文网首页IOS专辑iOS
iOS 支付宝支付不进回调的坑&填坑过程

iOS 支付宝支付不进回调的坑&填坑过程

作者: iOS_July | 来源:发表于2018-07-20 22:00 被阅读405次

    描述:
    请耐心看,着急的直接跳到第6点
    我的问题是这样的,利用支付宝进行余额充值,支付宝生成订单扣费了,App余额却没有增加,苦思不果,尝试了各种方法终于......

    其实这里的充值,一样的是调用

    - (BOOL)payInterceptorWithUrl:(NSString *)urlStr
                       fromScheme:(NSString *)schemeStr
                         callback:(CompletionBlock)completionBlock;
    

    这个方法,眼熟吗?想象中的,支付返回后,就会回调是吧~~
    然而想象总是美好的......

    现实是:

    • 支付界面取消支付,返回到App界面,不会回调
    • 支付界面进行支付,支付成功,不会回调
    • 虔诚的祈祷,同样不会回调[好了,皮一下就舒服了~~]

    好了,说说我是怎么来填这个巨坑的吧:

    • 1、因为支付宝支付、扣费是成功了的,所以,问题不在于发送的参数、订单生成等问题上,而是请求成功之后的操作上有误[这是我的第一反应,然而由于之前我并没有接触过支付宝方面的操作,还是跟着断点走了很多遍这一系列过程]
    • 2、But!它就是不走回调,根据官方Demo对Appdelegate文件做了更改[上一任没有在Appdelegate.m里做支持回调的处理,小声bb......],结果是Appdelegate里的回调进去了,能得到支付成功与否的结果,但是!!!!我封装的支付类里的支付回调方法却依
    • 3、生气ing~!但是生气也是没用的,依然要继续搬砖......于是尝试曲线救国,在Appdelegate里将回调值传递出去,然而是不可行的[至少目前,我不知道,尝试写通知传值,然而事件的生命周期,在Appdelegate里就结束了,我传出去了值,也貌似做不了处理...当然也许是我写的只是bug~~]。我开始怀疑,是不是集成错了?环境错了?
    • 4、接着上面的怀疑,我开始看项目里支付宝的集成环境,和官方文档一步一步的比较,发现...貌似...没问题!见鬼了?仔细想想,连支付宝订单都能生成,扣费都能成功,怎么会环境又问题,而且项目又没报错...此时此刻,开始为自己脑袋短路而感到愚蠢~~
    • 5、后来,我开始怀疑是不是SDK的原因,因为支付宝SDK有两个版本,旧版、新版,也许是这个问题了[内心有种强烈的预感,就是这样,实际上,除此之外我根本找不出其他原因了~~]
    • 6、结果,果真如此~!新版本2017,不支持,移动支付方式,只支持h5支付,旧版才支持移动支付。而项目里面用的就是新版本SDK,但是支付方式是移动支付,所以,并没有执行回调!!!!!!!!!!终于解决了[天呐,这个bug真的心累呀~~]

    解决方法:

    如果你仔细看了我上面的一把拉吧拉的吐槽和填坑经历的话,你已经知道怎么解决了,如果没仔细看,就直接看第6点吧,就酱~

    相关文章

      网友评论

      本文标题:iOS 支付宝支付不进回调的坑&填坑过程

      本文链接:https://www.haomeiwen.com/subject/uvqcmftx.html