集成微信支付详细步骤及说明——解决点击微信支付只有一个确定按钮的情况
2015-12-07 19:37
706 查看
集成微信支付详细步骤及说明——解决点击微信支付只有一个确定按钮的情况
最近做了微信支付的功能,有比较坑的地方,在这里写出来和大家分享下,避免大家多走弯路,浪费时间。
本文详细介绍了微信支付的每一步,并且可以解决点击跳转到微信客户端只有一个确定按钮的情况,请仔细往下看吧
注:来看“解决点击微信支付只有一个确定按钮的情况”的同学直接看最下面,(四)即可解决该情况,若还未解决,欢迎加群
(一)准备工作1、首先要去微信的开放平台(http://open.weixin.qq.com)进行开发者账号的注册
2、在开发者账号里创建一个APP应用,然后填写必填信息提交审核
3、进入APP应用,在接口信息中,进行申请“获得微信支付能力”的功能,期间会提交相关的公司营业信息证明等
说明:(1)说实话,不是我吐槽,他这个审核也太慢了
(2)以上3步有的公司已经给弄好了,码农们直接向上级要所需的参数就可以了,包括:商户号、商户密钥、AppID
一般第一步不用看啦 ,那么开始第二步 >_<
(二)导入相应的文件,配置环境
微信官方文档一份:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417694084&token=36432ad73d9973c2604798c8d42f5b4c84b411ed&lang=zh_CN
>>>>>>>>>>>先看1、2、下面说明<<<<<<<<<<<
1、首先到微信开放平台——>登录——>资源中心——>资源下载
2、step1:在你的工程里面,建议新建一个文件夹“微信支付”,其下新建两个子文件夹:一个WeiXinSDK,一个WeiXinFiles
step2:把解压之后的文件全放进<WeiXinSDK>里面
step3:把我demo里面集成的微信支付的文件放在<WeiXinFiles>里面
>>>>>>>>>>>>>>>重要说明<<<<<<<<<<<<<<<<<<
可以省略1、2、两步,直接把demo里面有一个<微信支付>的文件夹拖到你工程的根目录即可,如果你那么做了,那么配置路径可以直接写此路径:$(SRCROOT)/你的项目工程名/微信支付/WeixinSDK
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3、在你的工程文件中选择Build Setting,在Search Paths中添加 libWeChatSDK.a ,WXApi.h,WXApiObject.h 三个文件所在位置
(1)选择Build Setting —> 输入search —>找到Search Paths
(2)配置Header这一项的路径,你的微信SDK存放在什么文件夹就写哪个文件夹的路径,一般为:$(SRCROOT)/你的项目工程名/微信支付/WeixinSDK
【路径这个比较爱出错,如果你配置出了问题,欢迎加群:171907129,本人会耐心解答的】
4、在TARGETS下,选择info,在URLTypes里面添加一项
>>>>>>SDK包里的重要说明<<<<<<<
1、iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装。
受此影响,当你的应用在iOS 9中需要使用微信SDK的相关能力(分享、收藏、支付、登录等)时,需要在“Info.plist”里增加如下代码:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
或者配置白名单域名pingma.qq.com
2、开发者需要在工程中链接上 CoreTelephony.framework、sqlib3.tbb、libz.tbd、libc++.tbd
3、解决bitcode编译不过问题,设置bit code为NO
4、AFNetworking也有用到,如果有不用重复导入
(三)开始写代码
1、在APPdelegate.h中导入头文件,遵守微信的delegate
#import "WXApi.h" @interface AppDelegate : UIResponder <WXApiDelegate>
2、在didFinishLaunchingWithOptions:方法中注册你的appId;
//注册微信appId [WXApi registerApp:@"填写你的appId"]
3、openURL:方法
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { if(url != nil && [[url host] isEqualToString:@"pay"]){ //微信支付 NSLog(@"open:微信支付"); return [WXApi handleOpenURL:url delegate:self]; } else{ //其他 return YES; } }
4、handleOpenURL:方法
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { NSLog(@"1url = %@ [url host] = %@",url,[url host]); if(url != nil && [[url host] isEqualToString:@"pay"]){ //微信支付 NSLog(@"handle:微信支付"); return [WXApi handleOpenURL:url delegate:self]; } else{ //其他 return YES; } }
5、实现WXApiDelegate协议的两个方法(demo中含详细代码及说明)
-(void)onReq:(BaseReq *)req{ } -(void)onResp:(BaseResp *)resp{ }
(四)>>>>>>>>>>>>>需要你修改的信息<<<<<<<<<<<<<<<<
>>> 打开LVWxPay.m文件
1、应用APPID appid = @"填写你的appId";
2、微信支付商户号 mch_id = @"填写你的商户号";
3、支付结果异步通知的网站 notify_url =@"填写通知的网址”;
4、商户密钥 partner = @"填写你的商户密钥";
5、request.sign = [md5 createMD5SingForPay:@"填写你的appId" partnerid:request.partnerId prepayid:r
4000
equest.prepayId package:request.package noncestr:request.nonceStr timestamp:request.timeStamp];
>>> 打开DataMD5.m文件
1、添加商户密钥key字段
[contentString appendFormat:@"key=%@", @"填写你的商户密钥"];
>>>>>>【注意】:除了上面所写参数外,其他参数不需要修改,也不要修改,否则可能引起签名错误 <<<<<<<
那么做完上面的工作之后,我们就可以愉快的支付啦.......
//>>>>>>>>>>>>>微信支付<<<<<<<<<<<<<<<<
1、在你需要去支付这个功能的文件里面,导入头文件
#import "LVWxPay.h"
2、在你点击去微信支付的时候实现下面方法(详细说明请看demo)
[LVWxPay WXPayWithbody:productDes andtrade_no:trade_no andPrice:total_fee];
本人是一名码农女,最近刚开通的博客,想和大家分享自己的经验,也在向大神们学习,如果对以上内容有什么疑问或者想要相互交流的,欢迎进群:171907129交流学习;
另外说明:本文涉及到的demo我放在群共享里面,有需要的加下群去拿吧(因为刚开通,不知道把文件添加到哪里),陆续还会在群共享里面添加其他资料,欢迎下载
相关文章推荐
- 社交巨头三国杀:微信、WhatsApp、Line到底有啥区别?
- 微信悄悄升级群聊功能:个人微信营销号的福音
- 我是运营,我没有假期
- 如何做到日消息量100万的微信公众号?
- 论微信取消推送功能的可能性(原创)
- 微信的成功,靠的是QQ导流吗?
- 微信服务号推送模板消息接口
- PHP限制页面只能在微信自带浏览器访问的代码
- HTML5实现微信拍摄上传照片功能
- 微信小程序去哪里找 小程序到底如何使用(附小程序名单)
- 使用jQuery.wechat构建微信WEB应用
- nw.js实现类似微信的聊天软件
- jquery1.8版本使用ajax实现微信调用出现的问题分析及解决办法
- JS版微信6.0分享接口用法分析
- 微信小程序-详解微信登陆、微信支付、模板消息
- 大家在抢红包,程序员在研究红包算法
- 微信公众号支付(一)如何获取用户openId