友盟微信支付不回调

这是友盟 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]"

别学我。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容