支付宝微信支付成功但不执行回调


由于我自己集成支付宝微信支付的时候没有遇到这个问题,刚好最近朋友问我,这个问题应该是在iOS8之后的系统才会有这样的问题,希望能给一些小伙伴一些帮助

这个是在你点击支付宝和微信“backToxxx”情况,而不是点击左上角返回xxx情况哈,另外这些情况请参照http://www.jianshu.com/p/1e33f99124a9这个分享,我也是根

据这里面的内容找到解决办法的。

解决办法


支付宝

iOS8回调写在这个方法里

- (BOOL)application:(UIApplication *)application

            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation


iOS9写在这里

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options


由于是iOS9以上出现问题那我就把解决的方法就直接复制了

如下:

if ([url.host isEqualToString:@"safepay"]) {

       //这个是进程KILL掉之后也会调用,这个只是第一次授权回调,同时也会返回支付信息

        [[AlipaySDK defaultService]processAuth_V2Result:url standbyCallback:^(NSDictionary*resultDic) {

            NSString * str = resultDic[@"result"];

              NSLog(@"result = %@",str);

        }];

        //跳转支付宝钱包进行支付,处理支付结果,这个只是辅佐订单支付结果回调

        [[AlipaySDK defaultService] processOrderWithPaymentResult:urlstandbyCallback:^(NSDictionary *resultDic) {

            NSString * query =[[url query]stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

            id<DataVerifier> dataVeri = CreateRSADataVerifier(@"public");

            //验证签名是否一致

            if ([dataVeri verifyString:@"22" withSign:@"ee"]) {


            }

            NSLog(@"result = %@",resultDic);

            NSString * str = resultDic[@"memo"];

            NSLog(@"memo = %@",str);


        }];

    }else if ([url.host isEqualToString:@"platformapi"]){

        //授权返回码

        [[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary*resultDic) {


        }];

    }

微信

但是在上述application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options里会执行到这些语句

if ([url.host isEqualToString:@"pay"]){

       

        //执行微信的原始代理方法执行起回调方法

        return   [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];


        

    }else{

        BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];

        return result;

}

如果不能满足你的需求得话,就请到WXApiManager.m里找到-(void)onResp:(BaseResp *)resp方法,这个里面的回调会执行。


微信不执行 ( void ) onResp: ( BaseResp * ) resp  方法
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值