iOS集成微信支付的一些坑:onResp不回调、只显示一个确定按钮、闪回
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了iOS集成微信支付的一些坑:onResp不回调、只显示一个确定按钮、闪回,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2222字,纯文字阅读大概需要4分钟。
内容图文
![iOS集成微信支付的一些坑:onResp不回调、只显示一个确定按钮、闪回](/upload/InfoBanner/zyjiaocheng/1084/71281edc38394f71b001ec99bae50753.jpg)
iOS集成微信支付总体来说还是比较容易的(如果没有那些坑的话),所有文档都在:
https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_1
甚至只要看:
https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3
https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_5
这两部分就可以搞定。
遇到的大部分问题来自于另一个非常常用的第三方:友盟分享
关于
已经集成了友盟分享
只要下载微信sdk,并复制到友盟目录下的UMSocial_Sdk_Extra_Frameworks/Wechat文件夹中,替换存在文件。
关于
发起支付之后只显示一个确定按钮
就是这样,没有任何错误提示,断点返回的Url Schemes,也只有一个ret=-2,官方文档解释为:
“无需处理。发生场景:用户不支付了,点击取消,返回APP。”
遇到这个问题,基本就是发起请求的参数传错了。
PayReq *request = [[[PayReq alloc] init] autorelease]; request.partnerId = @"10000100"; request.prepayId= @"1101000000140415649af9fc314aa427"; request.package = @"Sign=WXPay"; request.nonceStr= @"a462b76e7436e98e0ed6e13c64b4fd1c"; request.timeStamp= @"1397527777"; request.sign= @"582282D72DD2B03AD892830965F428CB16E7A256"; [WXApi sendReq:request];
对照文档仔细排查吧,一定要注意大小写,另外,sign签名时,参数名要用小些(此处官方文档有错误,文档写的用驼峰那种:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3 步骤3-参与签名的字段名,此处感谢 @挨踢实习生) 。
关于
闪回
发起支付后,打开微信,然后立即返回到了你的程序。
原因是项目同时集成了友盟,注册微信的方法写在了初始化友盟分享的前面,调换一下位置即可。
//向微信注册,需要写到初始化友盟分享的后面 [WXApi registerApp:@"wx000000000" withDescription:@"**weixinpay"]; //你的微信appid
关于
onResp不回调
这个问题依然来自跟友盟分享的冲突。虽然友盟提供了一个
+(BOOL)handleOpenURL:(NSURL *)url wxApiDelegate:(id<WXApiDelegate>)wxApiDelegate;方法,但是通过此方法注册的delegate并没有被回调(这个有可能在不同系统版本,友盟sdk版本上效果不同)。
解决方法就是判断一下回调是不是微信支付:
//url Schemes回调 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [self applicationOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [self applicationOpenURL:url]; } - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options { return [self applicationOpenURL:url]; } - (BOOL)applicationOpenURL:(NSURL *)url { if([[url absoluteString] rangeOfString:@"wx000000000000://pay"].location == 0) //你的微信开发者appid return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]]; else return [UMSocialSnsService handleOpenURL:url wxApiDelegate:[WXApiManager sharedManager]]; }
如过你遇到其他问题,欢迎加微信探讨:lofocus
原文:http://blog.csdn.net/cuibo1123/article/details/50790357
内容总结
以上是互联网集市为您收集整理的iOS集成微信支付的一些坑:onResp不回调、只显示一个确定按钮、闪回全部内容,希望文章能够帮你解决iOS集成微信支付的一些坑:onResp不回调、只显示一个确定按钮、闪回所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。