ShareSDK微信支付成功不调用onResp、openURL、handleOpenURL等方法

ShareSDK最新的是3.x版本,以前老的2.x需要更新,毕竟ios9已经更新啦。然后ShareSDK里的最新方法也是肯定更换,这是比较痛苦的事情,项目里又要重新来一遍,检查、测试等。

按照官网的文档以及demo进行集成,设置白名单、添加文件等。配置微信、支付宝等。

开始运行项目,编译通过,测试支付,微信支付也成功了,但是发现不回调onResp方法,openURL方法也没有进入,难道项目引入头文件缺少?(onResp、openURL、handleOpenUR方法写在Appdelegate里边)。

开始查找问题:

1. ShareSDK 2.x的sdk是可以回调onResp。

2. 也按照官网的配置要求进行设置。

3. 官网的demo是可以回调onResp,说明sdk应该是最新的、没有问题。

4. 检查微信配置文件,appleid、密钥等。

最后得出问题肯定是初始化sdk的时候出现的。

那就检查对比官网demo是不是少写了配置,直接检查微信的配置,果然发现问题了,微信的代理没有写,因为这个代码是在官网上复制的,和官网给的demo是不一样的


demo代码截图


官网网站代码

两边对比可以发现:缺少 delegate:self

 [ShareSDKConnector connectWeChat:[WXApi class]];
 [ShareSDKConnector connectWeChat:[WXApi class] delegate:self];


还需要注意一下Appdelegate需要添加三个方法以及onResp:

[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. - (BOOL)application:(UIApplication *)application  
  2.       handleOpenURL:(NSURL *)url  
  3. {  
  4.      return  [WXApi handleOpenURL:url delegate:self];  
  5.      
  6. }  
  7. -(BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary<NSString *,id> *)options  
  8. {  
  9.     return  [WXApi handleOpenURL:url delegate:self];  
  10. }  
  11.   
  12. - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation  
  13. {  
  14.   
  15.     return  [WXApi handleOpenURL:url delegate:self];  
  16.   
  17. }  
  18.   
  19.   
  20. -(void) onResp:(BaseResp*)resp  
  21. {  
  22.     NSString *strMsg = [NSString stringWithFormat:@"errcode:%d", resp.errCode];  
  23.     if([resp isKindOfClass:[PayResp class]]){  
  24.         //支付返回结果  
  25.         switch (resp.errCode) {  
  26.             case WXSuccess:  
  27.                 strMsg = @"支付结果:成功!";  
  28. //                NSLog(@"支付成功-PaySuccess,retcode = %d", resp.errCode);  
  29.                 break;  
  30.             default:  
  31.                 strMsg = [NSString stringWithFormat:@"支付结果:失败!retcode = %d, retstr = %@", resp.errCode,resp.errStr];  
  32. //                NSLog(@"错误,retcode = %d, retstr = %@", resp.errCode,resp.errStr);  
  33.                 break;  
  34.         }  
  35.          
  36.     }  
  37. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值