美文网首页iOS_踩坑笔记iOS DeveloperiOS 开发
IOS微信第三方支付onResp方法不被回调的解决办法

IOS微信第三方支付onResp方法不被回调的解决办法

作者: Leonmmmmm | 来源:发表于2016-01-07 09:41 被阅读20779次

    之前有一篇文章我在ShareSDK的社会化分享基础上,集成了IOS的微信和支付宝支付。点击链接查看IOS微信支付和支付宝支付 


    很久没有更新,这次IOS9.2和Xcode7.2之后,上次的demo可能出现了一些问题。这里统一进行一下更新


    首先是关于关于IOS微信的支付分享或登录   成功调起客户端操作之后,返回你的应用之后onResp:方法不被执行的问题。

    //这里说明一下,上次的集成告诉大家在Appdelegate.m里加入如下两个方法,并完成对Wxi的delegate的设置。这两个方法在官方的文档上注明了IOS9.0之后废弃(但其实9.1好像也能用),不管怎样,如果你是Xcode7.2,或者IOS9.2的话,可能会遇见在微信客户端操作返回程序之后不能执行微信的onResp回调方法的问题,就是因为一下这两个方法被废弃掉了,所以我的新demo替换了一个新的方法在下面。就完美解决这个问题了(并不建议删除这两个方法,新方法是9.0以后的方法,可能系统低版本的用户不支持。所以我三种方法都留下了,如果有人发现不能都留下的话,请简信告诉我一下,再次谢过了

    //被废弃的方法如下

    -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;

    -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url

    sourceApplication:(NSString *)sourceApplication

    annotation:(id)annotation;


    //替换的新方法

    改用方法为- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options;


    这些更新都可以在这篇文章上的demo里看到,另外,新的demo里我还新增了IOS的三方分享和三方登录的集成。这样这个demo里就基本完成了三方支付、分享、登录的统一集成。点击这里查看新demo ,所有的集成方法和步骤我都写在readme那个word里了,如果还有其他问题欢迎在评论里问我,希望能帮到你们。

    相关文章

      网友评论

      • Ko_Neko:请问一下 (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options 这个方法里如何判断支付是成功还是失败呢?
      • 刘超_a594:application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options 调了这个方法 但是-(void)onResp:(BaseResp*)resp这个方法没响应 是什么情况
      • 梵高的老巫婆:万分感谢楼主 请教一下 支付完成后跳转到指定页面 用通知合适吗?
        Leonmmmmm:@梵高的老巫婆 用通知可以的。因为我用的类目,你也可以给类目加一个block属性。 用block相应然后跳转。
      • AtWillN:大神,微信支付完成后返回app的时候会显示启动页是怎么回事
      • 东风不起尘:支付完成后如何点击左上角的返回则不会回调-(void)onResp:(BaseResp*)resp方法 如果点击右上角的返回。。。。的APP会回调-(void)onResp:(BaseResp*)resp这个方法 其他都不会回调
      • FANTASIED:感谢
      • 之城之城:么么哒!
      • MarkTang:谢谢楼主
      • ncj:你好,我想请教一下就是支付成功后右上角是返回分享,这个是和分享的哪块出现的问题?
      • d545b6bbaa5a:我这边需要的方法都写好了,可是这个onResq的方法就是不走,想问问腾讯的人员了解下情况,竟然直接告知我看官方文档,
        FindViewById:请问你是怎么解决的?
        FindViewById:我也是,更新了楼主说的之后,onResq方法仍然不走
        Leonmmmmm:@d545b6bbaa5a 现在好用了吗?
      • whsczl:我也注册了来感谢楼主的 :smile:
      • inany:多谢多谢,搞死我了
      • 一梭蕉:谢谢你,公司是混合原生wex5框架写的,applicaitondelegate 没有这个9.0的方法,看到你的文字之后我顿时茅塞顿开,现在弄好了。感觉好像几天没拉出屎,今天拉出来一样爽
        Leonmmmmm:@虾米波 哈哈哈哈你这个比喻还真是生动形象:smile:
      • Lydia_qing:你好,请问微信支付后,通过微信左上角点击返回到APP后,要怎么获取到支付结果呢?
        Leonmmmmm:@Lydia_qing 当前也没有特别好的方法。有一种方法是,支付结果微信是会通知给回调地址的,这样后台是知道支付结果的,如果用户点击了左上角的话,可以向后台查询结果。但是这种方法也有缺陷,因为结果不是实时通知回调地址的,所以可能会有延迟。:sweat:,现在美团等各大软件也还没有解决这个问题吧,期待更好的解决办法:sweat:
      • 下雨就好:谢谢你,我也是不回调,我之前N久修过微信支付,当时是通的,现在搬到另外一个app上就不回调了,蛋疼俩多小时,看到你这个文章才知道原因,谢谢了
        Leonmmmmm:@1_2 客气了:smile:
      • 给你快乐:我用友盟做了微信登录,之后去用微信支付的时候不论成功失败都不走回调方法,也是这个原因吗?
        Leonmmmmm:@给你快乐 嗯,应该是
      • 博尔茨杰:就像你说的,三个方法还是最好都留下,不然低版本不能调用。
        Leonmmmmm:@阿杰成长中 是的,适配问题
      • 1364f57ee045:我的问题是现在微信支付成功了以后,点击微信里面的返回(右上角),应该是返回我们自己的app,但是现在返回的是微信的上层,不知道代码还少了点啥
        zero000:@lm_hang 怎么解决的
        d404ba4d41a4:@Helloween 我也是这样,有找到原因吗?
      • a2a72324ca6d:请问如果用户支付成功选择留着微信,然后他按左上角的返回源客户端(iOS9之后的新特性),这时该怎么获取支付回调结果?通过这种方式返回上文提到的这个方法并不执行
        Leonmmmmm:@路人pby 暂时就只能想到这,而且这种方法也有弊端,因为服务器接到的回调,有时候不是实时的,你请求的时候很可能服务器还没收到回调,这就又有问题了,现在很多app都有这个左上角返回没回调的问题…应该是还没有特别好的方法
        a2a72324ca6d:@CoderLeon 所以差不多得是用户回到应用的时候调一下服务端接口,看是否支付成功,进行处理?
        Leonmmmmm:@路人pby 这个确实是个问题。好在服务器端有回调网址这个东西,能知道是否支付成功。前端的话现在没有什么好的办法:sweat:
      • angelen:我想问一下,
        1、那个onResp方法是写在AppDelegate.m里吗?
        2、那我在其他的ViewController想用分享功能,那这个ViewController需要实现WXApiDelegate吗?

        angelen:@CoderLeon 谢谢
        Leonmmmmm:@angelen 1、是的。2、不需要。直接引用头文件,然后调用分享方法就好了
      • 来宝:大神,你的demo在云盘咋无法下载呀,我也遇到onResp方法不被回调了
      • 962d548bf933:刚好碰见这个问题,谢谢!
      • 蒛德僦媞埘尙:万分感谢、特么的终于有回调了、
      • 62657461888a:实在太感谢了,搞了两天了,看到你的博文顿时恍然大悟,非常感谢
      • 795503088d4e:大神,我写的微信支付能支付成功但就是一直不调用onResp这个方法,这是为什么啊?
        Leonmmmmm:@02c3410f9568 支付成功之后,从微信客户端直接回到你的程序了吗?
        我是真的好:大神,我写的微信支付能支付成功但就是一直不调用onResp这个方法,在APPDelegate.m文件中写了那几个openUrl方法,但是,支付完成后,就是不走那几个方法。大神,请问,这是怎么回事啊
        Leonmmmmm:@小兔__ 修改了Appdelegate 里的废弃的方法了吗?
      • 山_人:专门注册个账号表示感谢 :+1:
        Leonmmmmm:@山_人 客气了😃😃
      • 9410e5ce03ca:😍
        Leonmmmmm:@苏白Lance :smile:
      • CoderXYF:专门注册个号来感谢你,我就说为什么别人的demo可以调用onResp方法,集成到我的项目里就不能了,试了好多方法问了好多人耗费了我几天时间也没解决,今天终于看到你这个帖子了,如久旱遇甘霖啊!
        CoderXYF:@nepu_ding :yum:
        nepu_ding:我也是专门注册账号来感谢答主的,完美解决,谢谢
        Leonmmmmm:@96347752af17 哈哈哈哈还专门注册个号,有点感动,很高兴帮到你:smile::smile:

      本文标题:IOS微信第三方支付onResp方法不被回调的解决办法

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