微信支付
1:去微信开放平台注册应用https://open.weixin.qq.com/cgi-bin/index?t=home/index&lang=zh_CN&token=2c0fee9c43e1eb8f9febcc7cb73abf598e2d4011
创建移动应用并成功之后会收到腾讯发来的邮件,
通过邮件你能获得重要的参数:
(1):AppID
(2):微信支付商户号
(4):前往商户平台完成入驻
(4):API秘钥(自己设置即可,注意一定要32位字母加数字的组合)记得保存好秘钥,以后要使用
支付所需要的可以写成宏以供调用
2:完成入驻之后,下载微信官方SDK和官方demo
https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1
(1):导入项目
onlyPhone指的是只能真机运行,不然会报错
(2):导入生成签名的文件(在官方demo中获得)
(3):运行之后会报错
解决办法:
1:添加 FrameWork 文件到工程在工程中修改 Other Linker Flags 后,需要修改编译步骤的链接库设置,避免链接阶段由于库的设置错误导致程序崩溃。方法:程序 Target->Buid Phases->Link Binary With Libraries 下添加以下 Framework 至工程中。需要添加的 Frameworks为 : QuartzCore.framework 、 ImageIO.framework 、SystemConfiguration.framework 、 Security.framework 、CoreTelephony.framework 、 CoreText.framework 、 UIKit.framework 、Foundation.framework 和 CoreGraphics.framework
。
2:在工程中引入静态库之后,需要在编译时添加 –objC 编译选项,避免静态库中类加载 不全造成程序崩溃。方法:程序 Target->Buid Settings->Linking 下 Other Linker Flags 项添加-ObjC。
3:写入ARC、MRC混编代码
4:运行之后如果没有错的话,开始正式写支付
(1):引入微信支付头文件并在项目的info中设置回调ID
(2):在程序启动完成的时候注册微信支付
(3):在支付页面发放中发起支付
- 微信支付、签名头文件(如果服务器端不做的情况下)
- 支付方法
上面调用了demo中的生成签名的类,还有下单的方法如下:
- 一次签名
- 成订单的方法
4:应用跳转到微信支付完毕,返回App,我们通过在App Delegate中的设置代理回调并通知支付页面支付成功
-
遵守代理
-
设置回调代理并发送通知
- 在代理方法中发送通知并传递微信支付返回的数据
-
在支付页面注册通知并处理支付后的操作
-
注册通知
- 实现通知方法
终于解决啦。。。欢迎你们查看!