文章轉至: https://cainluo.github.io/14739456388212.html
作者感言
前面我已經寫了一篇關於**
WeChat SDK
的支付篇, 那我們繼續研究接下來的支付SDK
, 這次就是國民支付軟體支付寶
, 下面就讓我們來看看怎麼整合AliPay SDK
**.最後:
如果你有更好的建議或者對這篇文章有不滿的地方, 請聯絡我, 我會參考你們的意見再進行修改, 聯絡我時, 請備註AliPay SDK
如果覺得好的話, 希望大家也可以打賞一下~嘻嘻~祝大家學習愉快~謝謝~
簡介
支付寶SDK, 只要做過支付類App的, 都百分百接觸過, 至於為什麼那麼多人喜歡用支付寶, 這個我就不在這裡做解釋了, 大家都懂的, 但是呢, 由於在阿里巴巴的發展下, 支付寶慢慢與螞蟻金服整合, 甚至連開放平臺名字都改成**
螞蟻金服開放平臺
**, 但無論怎麼樣, 支付寶都是行業內安全性最高的,
準備工作
其實整合**
AliPay SDK
和WeChat SDK
有些類似, 就連商家ID
**的申請, **App ID
的申請, 流程都差不多, 詳細這裡我就不在這裡講解了, 大家可以去支付寶商家商戶服務平臺**瞭解瞭解.
下載SDK包
由於螞蟻金服和支付寶的整合, 就連SDK的資源都改了, 大家可以去**開放平臺-文件中心**找到資源下載.
繼續來段廢話
SDK包下載好了之後, 我們去到之前的那個支付工程建立我們的新工程, 命名為**
AliPay-Objective-C
, 接下來我們就可以繼續整合AliPay SDK
**了.
配置檔案
現在我們建立好了工程, 然後我們和整合**
WeChat SDK
一樣, 需要配置一下工程, 這樣子我們才能讓AliPay SDK
正常工作.現在讓我們來開啟工程的
Info.plist
**檔案, 新增一些配置.
新增依賴包
和**
WeChat SDK
**一樣, **AliPay SDK
一樣是需要匯入依賴包的, 但是這個依賴包要比WeChat SDK
**要多一些, 這個比較蛋疼.
- UIKit.framework
- CoreMotion.framework
- CFNetWork.framework
- Foundation.framework
- CoreGraphics.framework
- CoreText.framework
- QuartzCore.framework
- CoreTelephony.framework
- SystemConfiguration.framework
- libz.tbd
- libc++.tbd
這些都是所需的依賴庫, 真的是非常的蛋疼.
註冊App ID
由於**
AliPay SDK
是不需要在AppDelegate.m
檔案裡註冊的, 所以註冊App ID
**這個步驟我們就忽略了.
佈局UI介面
這裡的UI佈局介面就和**
WeChat SDK
那樣, 直接拖一個UIButton
, 以及加一個Action
**事件就好了.
注意!!!
由於**
AliPay
改版了, 如果是老版本的SDK需要更新到最新的話, 一定要去好好的讀一下介面文件, 因為這裡需要新增多兩個額外庫以及一些依賴的簽名檔案, 這兩個庫在AliPay
**的資源包裡可以找到.
把這些依賴檔案都拖入我們的工程裡, 這樣子我們就能正常的完成開發了~~
整合SDK
之前的所有準備工作都已經做好了, 現在重點來了, 就讓我們看看怎麼實現支付寶支付!
> 首先我們需要一個訂單物件, 這裡我們命名為**`AliPayOther`**, 還有一個**`AliPayBizContent`**, 然後宣告一些屬性, 並且在內部實現一些方法, 由於這裡的程式碼比較多, 這裡就不列舉了, 各位童鞋們還是自行去翻翻工程吧~~
然後呢, 我們就要把兩個重量級的檔案拖入到工程, 一個就是**
AlipaySDK.bundle
, 一個是AlipaySDK.framework
, 這兩個檔案也是在AliPay
**的資源包裡可以找到.
匯入之後編譯一下, Xcode居然提示出錯了!!!
看了一下錯誤資訊, 提示**
NSObject
, 我想應該是<Foundation/Foundation.h>
**沒有匯入到對應的檔案裡去吧, 試試看先
我屮艸芔茻, 一些問題解決了, 另一些問題又出來了, 仔細一看, 我勒個去, 原來是忘了匯入剛剛所說的**
libcrypto.a
以及libssl.a
**庫了…我說怎麼好像少了兩個東西, 趕緊匯入進去~
匯入完之後, 還有一個錯誤, 我也是醉醉噠….尼瑪, 這是玩我呢….以前匯入SDK那有那麼麻煩啊…翻了一下文件, 發現要新增一個**
Header
的連結….我也是醉了, 這個連結的寫法是$(SRCROOT)/(工程名)
, 我這裡所寫的是$(SRCROOT)/AliPay-Objective-C
**
實現支付寶支付
好了, 我們把遇到的坑填完之後, 現在就來實現支付寶支付, 這裡我們就直接把**
AliPayDemo
**裡的程式碼直接拷貝過來,
新增完之後, 別忘了處理**
AliPay
回撥回來的資訊, 順便說說, 這裡的代理方法會有兩個, 一個是iOS 9
**之後才有的新方法, 大家可以動動小腦袋, 看看怎麼樣封裝才會比較好一些~
到這裡我們就已經整合完畢了, 由於支付寶的Demo裡沒有提供**
App ID
和私鑰
, 所以我們這裡顯示的效果只能是醬紫了…需要測試的童鞋們只能自己去申請App ID
和私鑰
**了
工程地址
專案地址: https://github.com/CainRun/PayProject