006-移動支付04-微信支付-iOS客戶端開發

上一篇:005-移動支付03-微信支付-服務器開發注意事項

一、前記

可以下載微信提供的官方DEMO照著寫,基本功能大致就夠了。

二、導入SDK(搭建環境)

雖然主要工作都在服務器端,不過要調起微信,所以還是需要有個SDK的。

為了方便SDK升級,考慮到部分功能調整,可以對SDK做封裝,這樣即使微信SDK大改對項目直接傷害會很小。同樣,能更新SDK也建議更新SDK。

導入SDK記得還要導入SDK依賴的庫。

需要注意一點需要在Build Settings->Other Linker Flags設置-ObjC。
附:主要是因為OC語言中類別,Unix的標準靜態庫實現和Objective-C的動態特性之間有一些沖突:OC沒有為每個函數(或者方法)定義鏈接符號,它只為每個類創建鏈接符號。這樣當在一個靜態庫中使用類別來擴展已有類的時候,鏈接器不知道如何把類原有的方法和類別中的方法整合起來,就會導致你調用類別中的方法時,出現錯誤。為了解決這個問題,引入了-ObjC標志,它的作用就是將靜態庫中所有的和對象相關的文件都加載進來。
另外還有兩個方法,分別是用來全部導入和部分導入。使用-all_load 或者-force_load標志,它們的作用都是加載靜態庫中所有文件,不過all_load作用于所有的庫,而-force_load后面必須要指定具體的文件。

需要配置URL Type微信相關

三、實現微信支付

注冊,把注冊碼調用注冊方法傳進去。

客戶端需要一個發起支付的方法

請求商戶服務器獲取預付單ID(prepay_id)

請求微信支付SDK,發起支付。

之前服務器返回是一個Model,所以可以建一個模型類,接收到服務器返回的數據時,直接轉為模型。

之前提到了,簽名有很多需要注意的地方。一不小心,簽名失敗。

簽名失敗情況.png

當一切順暢,支付成功時。

支付成功時.png

下一篇:007-移動支付05-微信支付-安卓客戶端開發

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容