ShareSDK微信支付成功不调用onResp、openURL、handleOpenURL等方法
2016-05-20 11:36
1326 查看
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
- (BOOL)application:(UIApplication *)application
handleOpenURL:(NSURL *)url
{
return [WXApi handleOpenURL:url delegate:self];
}
-(BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary<NSString *,id> *)options
{
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [WXApi handleOpenURL:url delegate:self];
}
-(void) onResp:(BaseResp*)resp
{
NSString *strMsg = [NSString stringWithFormat:@"errcode:%d", resp.errCode];
if([resp isKindOfClass:[PayResp class]]){
//支付返回结果
switch (resp.errCode) {
case WXSuccess:
strMsg = @"支付结果:成功!"
cc26
;
// NSLog(@"支付成功-PaySuccess,retcode = %d", resp.errCode);
break;
default:
strMsg = [NSString stringWithFormat:@"支付结果:失败!retcode = %d, retstr = %@", resp.errCode,resp.errStr];
// NSLog(@"错误,retcode = %d, retstr = %@", resp.errCode,resp.errStr);
break;
}
}
}
按照官网的文档以及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
- (BOOL)application:(UIApplication *)application
handleOpenURL:(NSURL *)url
{
return [WXApi handleOpenURL:url delegate:self];
}
-(BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary<NSString *,id> *)options
{
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [WXApi handleOpenURL:url delegate:self];
}
-(void) onResp:(BaseResp*)resp
{
NSString *strMsg = [NSString stringWithFormat:@"errcode:%d", resp.errCode];
if([resp isKindOfClass:[PayResp class]]){
//支付返回结果
switch (resp.errCode) {
case WXSuccess:
strMsg = @"支付结果:成功!"
cc26
;
// NSLog(@"支付成功-PaySuccess,retcode = %d", resp.errCode);
break;
default:
strMsg = [NSString stringWithFormat:@"支付结果:失败!retcode = %d, retstr = %@", resp.errCode,resp.errStr];
// NSLog(@"错误,retcode = %d, retstr = %@", resp.errCode,resp.errStr);
break;
}
}
}
相关文章推荐
- python爬虫抓手机号+java客户端小程序2
- 微信公众号自定义菜单操作步骤
- 情人节写给女朋友的小程序
- [Android-2A] -仿IOS微信滑动删除_SwipeListview左滑删除例子
- 5分钟教你把产品卖遍微信朋友圈!
- 企业有必要知道的微信营销新思维
- 微信三级分销是个什么鬼?
- Android 仿写微信里的标签功能
- 分享--微信分享简单方法
- Android微信朋友圈、微信分享回调函数没有响应
- 微信 学习网址
- ionic入门教程第十六课-在微信中使用ionic的解决方案(按需加载加强版)
- 模仿微信选择群组成员的搜索效果(退格删除成员)
- 微信 redirect_uri参数错误 正确的处理
- Android中微信支付的调用方法
- python爬虫抓手机号+java客户端小程序
- 基于微信地理位置的附近商家距离坐标数据查询方法
- 微信退款curl错误
- 简述集成微信支付
- Java开发微信支付流程及容易入坑的点