友盟微信支付不回调

作者: qxy | 来源:发表于2016-08-30 17:00 被阅读333次

    这是友盟 UMSocialSnsService.h 里的一个处理回调的方法

    
    /**
     
     Deprecated API
     
     处理app的URL方法
     
     @param url 传入的url
     
     @return wxApiDelegate 实现微信代理对象
     */
    +(BOOL)handleOpenURL:(NSURL *)url wxApiDelegate:(id<WXApiDelegate>)wxApiDelegate;
    

    使用发现这个 wxApiDelegate 即使设置了也不会执行 <WXApiDelegate> 里的方法。

    所以在微信支付的时候需要进行判断,使用微信SDK的方法设置代理。

    
    /**
     *  AppDelegate 中 支付回调信息处理
     */
    + (BOOL)payCommleteWithOpenURL:(NSURL *)url
    {
        GPPayTool * payTool = [GPPayTool shareGPPayTool];
    
        if ([url.host isEqualToString:@"uppayresult"]) {
            [payTool unionPayOpenURL:url];
        } else if ([url.host isEqualToString:@"safepay"]) {
            [payTool aliPayOpenURL:url];
        } else if ([url.host isEqualToString:@"pay"]) {
           return [WXApi handleOpenURL:url delegate:payTool];
        }else {
           return [UMSocialSnsService handleOpenURL:url];
        }
        return YES;
    }
    

    这里我直接判断 host 是否为 pay,可能会跟别的第三方回调重复,保险起见你应该打印一下 这个 url ,可以看到微信支付的 url 格式为 wx000000000://pay/?code=031i50Wd2tYa3R0cL9Ud2bGYVd2i50WE&state=wx000000000 这里是你的微信的 AppId,你应该判断是否等于 ``wx000000000://pay`:

    [url.absoluteString isEqualToString:@"wx000000000://pay]"
    

    别学我。

    相关文章

      网友评论

        本文标题:友盟微信支付不回调

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