首先還是集成第三方SDK的老套路会烙,去下載一份iOS微信支付官方Demo(下載地址)瞅瞅店归。
1.出師不利
當(dāng)我們下載好demo后,直接打開demo編譯的時候直接報錯了:
從報錯信息中“_kCFStreamNetworkServiceTypeVoIP”字段可以推測出編譯錯誤與網(wǎng)絡(luò)相關(guān)的庫有關(guān),常用的系統(tǒng)網(wǎng)絡(luò)支持庫一般為:CFNetwork.framework邀层。因此,解決方式為:添加CFNetwork庫支持
此時編譯就能通過了晴裹,但是不要高興得太早被济。當(dāng)你運行Demo時,你會發(fā)現(xiàn)程序莫名其妙地崩潰了:
解決方案:在工程配置中的”O(jiān)ther Linker Flags”中加入”-Objc -all_load”
是不是特想知道我是怎么知道的涧团?哈哈只磷,其實下的Demo里已經(jīng)說得很明白了。俗話說心急吃不了熱豆腐泌绣,每次當(dāng)我們下載使用第三方工具的時候钮追,最好不要先急著跑程序,先找找有沒有readMe文件阿迈,仔細(xì)讀讀不會有壞處的元媚!
到現(xiàn)在,我們下載的Demo終于可以跑起來了】兀可是我們要做的只是微信支付這一塊炭晒,這個Demo的信息量可真大很多都不是我們需要的。直接拿來用肯定是大大不妥滴甥角。网严。。
2.另辟蹊徑
既然官方的Demo太繁瑣嗤无,而且他給出的WXApiManager也比較晦澀難懂震束。我們不妨按自己所需對微信支付OpenSDK做一個二次封裝,這樣用著也順手。
1.首先建立一個微信支付工具類(我這里叫CHWxPayManager,自定義的類類名最好加一個前綴)
2.發(fā)起支付的核心代碼:
3.支付代碼實現(xiàn)了,我們還需要在AppDelegate里為OpenSDK做一些配置
3.1在AppDelegate中didFinishLaunchingWithOptions方法內(nèi)注冊APPID(記得引入頭文件CHWxPayManager.h)
3.2根據(jù)OpenSDK提供的接口說明牍鞠,我們需要在handleOpenURL方法回調(diào)內(nèi)做以下處理:
這樣浆洗,一個屬于自己的基于OpenSDK的二次封裝支付類就完成了,簡單的支付功能就可以基本實現(xiàn)了。至于某些細(xì)節(jié)部分的調(diào)試可能需要與后臺聯(lián)調(diào),這里就不再贅述。
如果你還有什么疑問胸懈,請在文章下留言提問,我們一起交流學(xué)習(xí)恰响!
晚安趣钱,這個世界!晚安胚宦,這個世界的程序猿們首有!
--20171019凌晨