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


由于我自己集成支付宝微信支付的时候没有遇到这个问题,刚好最近朋友问我,这个问题应该是在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,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 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,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  方法

你可能感兴趣的:(bug解决,功能实现)