这是友盟 UMSocialSnsService.h
里的一个处理回调的方法
1 2 3 4 5 6 7 8 9 10 11 12
|
+(BOOL)handleOpenURL:(NSURL *)url wxApiDelegate:(id<WXApiDelegate>)wxApiDelegate;
|
使用发现这个 wxApiDelegate
即使设置了也不会执行 <WXApiDelegate>
里的方法。
所以在微信支付的时候需要进行判断,使用微信SDK的方法设置代理。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
+ (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`:
1
| [url.absoluteString isEqualToString:@"wx000000000://pay]"
|
别学我。