微信支付集成之4iOS端简单集成

首先还是集成第三方SDK的老套路,去下载一份iOS微信支付官方Demo(下载地址)瞅瞅。

1.出师不利

当我们下载好demo后,直接打开demo编译的时候直接报错了:

微信支付集成之4iOS端简单集成_第1张图片
图1

从报错信息中“_kCFStreamNetworkServiceTypeVoIP”字段可以推测出编译错误与网络相关的库有关,常用的系统网络支持库一般为:CFNetwork.framework。因此,解决方式为:添加CFNetwork库支持

微信支付集成之4iOS端简单集成_第2张图片

此时编译就能通过了,但是不要高兴得太早。当你运行Demo时,你会发现程序莫名其妙地崩溃了:

微信支付集成之4iOS端简单集成_第3张图片
图3

解决方案:在工程配置中的”Other Linker Flags”中加入”-Objc -all_load”

微信支付集成之4iOS端简单集成_第4张图片
图4

是不是特想知道我是怎么知道的?哈哈,其实下的Demo里已经说得很明白了。俗话说心急吃不了热豆腐,每次当我们下载使用第三方工具的时候,最好不要先急着跑程序,先找找有没有readMe文件,仔细读读不会有坏处的!

微信支付集成之4iOS端简单集成_第5张图片

到现在,我们下载的Demo终于可以跑起来了。可是我们要做的只是微信支付这一块,这个Demo的信息量可真大很多都不是我们需要的。直接拿来用肯定是大大不妥滴。。。

2.另辟蹊径

既然官方的Demo太繁琐,而且他给出的WXApiManager也比较晦涩难懂。我们不妨按自己所需对微信支付OpenSDK做一个二次封装,这样用着也顺手。

1.首先建立一个微信支付工具类(我这里叫CHWxPayManager,自定义的类类名最好加一个前缀)

微信支付集成之4iOS端简单集成_第6张图片

2.发起支付的核心代码:

微信支付集成之4iOS端简单集成_第7张图片
2_1
微信支付集成之4iOS端简单集成_第8张图片
2_2
微信支付集成之4iOS端简单集成_第9张图片
2_3

3.支付代码实现了,我们还需要在AppDelegate里为OpenSDK做一些配置

3.1在AppDelegate中didFinishLaunchingWithOptions方法内注册APPID(记得引入头文件CHWxPayManager.h)

微信支付集成之4iOS端简单集成_第10张图片
3_2

3.2根据OpenSDK提供的接口说明,我们需要在handleOpenURL方法回调内做以下处理:

微信支付集成之4iOS端简单集成_第11张图片
3.2_1
微信支付集成之4iOS端简单集成_第12张图片
3.2_2

这样,一个属于自己的基于OpenSDK的二次封装支付类就完成了,简单的支付功能就可以基本实现了。至于某些细节部分的调试可能需要与后台联调,这里就不再赘述。

如果你还有什么疑问,请在文章下留言提问,我们一起交流学习!

晚安,这个世界!晚安,这个世界的程序猿们!

--20171019凌晨

你可能感兴趣的:(微信支付集成之4iOS端简单集成)