前言
微信支付的iOS的Demo真是烂,所有的参数都是后台生成传过来的,完全没参考价值,并且有的注意点文档上也没说,现在我就说一下微信支付开发中需要注意的地方
项目配置
把实例项目中的一下文件拖到项目中
1 | Control文件夹下的WXApiManager.h和WXApiManager.m |
桥接文件中添加引用
1 | //微信支付 |
项目配置选项卡Info
中URL Types
中的添加一项
1 | identifier 设置为 weixin |
在AppDelegate中注册
1 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { |
需要的三个参数
1 | appid (微信开放平台中获取) |
支付步骤
支付总体上分为两步
- 获取prepayid(预付款ID)
- 根据prepayid发起支付
第一步获取prepayid
这一步比较变态,它不像平常我们请求接口那样传參,而是把参数和值又拼成XML,再写入request中,实现起来较麻烦,官方也是在后台去实现的,所以建议第一步在后台实现,app端直接掉后台提供的接口
第二步发起请求
这一步除下签名相对麻烦点其他都很简单
代码
1 | let req = PayReq(); |
下面提供一下我用的工具类
1 | import Foundation |
工具类中用到的第三方库
1 | pod 'CryptoSwift' |