玩轉 iOS 開發:整合 AliPay – 支付寶

CainLuo發表於2019-03-04

文章轉至: https://cainluo.github.io/14739456388212.html


作者感言

前面我已經寫了一篇關於**WeChat SDK的支付篇, 那我們繼續研究接下來的支付SDK, 這次就是國民支付軟體支付寶, 下面就讓我們來看看怎麼整合AliPay SDK**.

最後:
如果你有更好的建議或者對這篇文章有不滿的地方, 請聯絡我, 我會參考你們的意見再進行修改, 聯絡我時, 請備註AliPay SDK如果覺得好的話, 希望大家也可以打賞一下~嘻嘻~祝大家學習愉快~謝謝~


簡介

支付寶SDK, 只要做過支付類App的, 都百分百接觸過, 至於為什麼那麼多人喜歡用支付寶, 這個我就不在這裡做解釋了, 大家都懂的, 但是呢, 由於在阿里巴巴的發展下, 支付寶慢慢與螞蟻金服整合, 甚至連開放平臺名字都改成**螞蟻金服開放平臺**, 但無論怎麼樣, 支付寶都是行業內安全性最高的,


準備工作

其實整合**AliPay SDKWeChat SDK有些類似, 就連商家ID**的申請, **App ID的申請, 流程都差不多, 詳細這裡我就不在這裡講解了, 大家可以去支付寶商家商戶服務平臺**瞭解瞭解.


下載SDK包

由於螞蟻金服和支付寶的整合, 就連SDK的資源都改了, 大家可以去**開放平臺-文件中心**找到資源下載.

1
2
3

繼續來段廢話

SDK包下載好了之後, 我們去到之前的那個支付工程建立我們的新工程, 命名為**AliPay-Objective-C, 接下來我們就可以繼續整合AliPay SDK**了.

4

配置檔案

現在我們建立好了工程, 然後我們和整合**WeChat SDK一樣, 需要配置一下工程, 這樣子我們才能讓AliPay SDK正常工作.

現在讓我們來開啟工程的Info.plist**檔案, 新增一些配置.

5
6

新增依賴包

和**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

這些都是所需的依賴庫, 真的是非常的蛋疼.

7

註冊App ID

由於**AliPay SDK是不需要在AppDelegate.m檔案裡註冊的, 所以註冊App ID**這個步驟我們就忽略了.


佈局UI介面

這裡的UI佈局介面就和**WeChat SDK那樣, 直接拖一個UIButton, 以及加一個Action**事件就好了.

8

注意!!!

由於**AliPay改版了, 如果是老版本的SDK需要更新到最新的話, 一定要去好好的讀一下介面文件, 因為這裡需要新增多兩個額外庫以及一些依賴的簽名檔案, 這兩個庫在AliPay**的資源包裡可以找到.

9
10
11

把這些依賴檔案都拖入我們的工程裡, 這樣子我們就能正常的完成開發了~~

12

整合SDK

之前的所有準備工作都已經做好了, 現在重點來了, 就讓我們看看怎麼實現支付寶支付!

> 首先我們需要一個訂單物件, 這裡我們命名為**`AliPayOther`**, 還有一個**`AliPayBizContent`**, 然後宣告一些屬性, 並且在內部實現一些方法, 由於這裡的程式碼比較多, 這裡就不列舉了, 各位童鞋們還是自行去翻翻工程吧~~

13

然後呢, 我們就要把兩個重量級的檔案拖入到工程, 一個就是**AlipaySDK.bundle, 一個是AlipaySDK.framework, 這兩個檔案也是在AliPay**的資源包裡可以找到.

14

匯入之後編譯一下, Xcode居然提示出錯了!!!

15

看了一下錯誤資訊, 提示**NSObject, 我想應該是<Foundation/Foundation.h>**沒有匯入到對應的檔案裡去吧, 試試看先

16

我屮艸芔茻, 一些問題解決了, 另一些問題又出來了, 仔細一看, 我勒個去, 原來是忘了匯入剛剛所說的**libcrypto.a以及libssl.a**庫了…我說怎麼好像少了兩個東西, 趕緊匯入進去~

17

匯入完之後, 還有一個錯誤, 我也是醉醉噠….尼瑪, 這是玩我呢….以前匯入SDK那有那麼麻煩啊…翻了一下文件, 發現要新增一個**Header的連結….我也是醉了, 這個連結的寫法是$(SRCROOT)/(工程名), 我這裡所寫的是$(SRCROOT)/AliPay-Objective-C**

18

實現支付寶支付

好了, 我們把遇到的坑填完之後, 現在就來實現支付寶支付, 這裡我們就直接把**AliPayDemo**裡的程式碼直接拷貝過來,

19

新增完之後, 別忘了處理**AliPay回撥回來的資訊, 順便說說, 這裡的代理方法會有兩個, 一個是iOS 9**之後才有的新方法, 大家可以動動小腦袋, 看看怎麼樣封裝才會比較好一些~

20

到這裡我們就已經整合完畢了, 由於支付寶的Demo裡沒有提供**App ID私鑰, 所以我們這裡顯示的效果只能是醬紫了…需要測試的童鞋們只能自己去申請App ID私鑰**了

21

工程地址

專案地址: https://github.com/CainRun/PayProject


最後

碼字很費腦, 看官賞點飯錢可好
微信
支付寶

相關文章