由于我自己集成支付宝微信支付的时候没有遇到这个问题,刚好最近朋友问我,这个问题应该是在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
由于是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
//验证签名是否一致
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
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方法,这个里面的回调会执行。