首先还是集成第三方SDK的老套路,去下载一份iOS微信支付官方Demo(下载地址)瞅瞅。
1.出师不利
当我们下载好demo后,直接打开demo编译的时候直接报错了:
从报错信息中“_kCFStreamNetworkServiceTypeVoIP”字段可以推测出编译错误与网络相关的库有关,常用的系统网络支持库一般为:CFNetwork.framework。因此,解决方式为:添加CFNetwork库支持
此时编译就能通过了,但是不要高兴得太早。当你运行Demo时,你会发现程序莫名其妙地崩溃了:
解决方案:在工程配置中的”Other Linker Flags”中加入”-Objc -all_load”
是不是特想知道我是怎么知道的?哈哈,其实下的Demo里已经说得很明白了。俗话说心急吃不了热豆腐,每次当我们下载使用第三方工具的时候,最好不要先急着跑程序,先找找有没有readMe文件,仔细读读不会有坏处的!
到现在,我们下载的Demo终于可以跑起来了。可是我们要做的只是微信支付这一块,这个Demo的信息量可真大很多都不是我们需要的。直接拿来用肯定是大大不妥滴。。。
2.另辟蹊径
既然官方的Demo太繁琐,而且他给出的WXApiManager也比较晦涩难懂。我们不妨按自己所需对微信支付OpenSDK做一个二次封装,这样用着也顺手。
1.首先建立一个微信支付工具类(我这里叫CHWxPayManager,自定义的类类名最好加一个前缀)
2.发起支付的核心代码:
3.支付代码实现了,我们还需要在AppDelegate里为OpenSDK做一些配置
3.1在AppDelegate中didFinishLaunchingWithOptions方法内注册APPID(记得引入头文件CHWxPayManager.h)
3.2根据OpenSDK提供的接口说明,我们需要在handleOpenURL方法回调内做以下处理:
这样,一个属于自己的基于OpenSDK的二次封装支付类就完成了,简单的支付功能就可以基本实现了。至于某些细节部分的调试可能需要与后台联调,这里就不再赘述。
如果你还有什么疑问,请在文章下留言提问,我们一起交流学习!
晚安,这个世界!晚安,这个世界的程序猿们!
--20171019凌晨