你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> iOS 9 學習系列:Apple Pay

iOS 9 學習系列:Apple Pay

編輯:IOS開發基礎

0.jpg

Apple Pay 是在 iOS 8 中第一次被介紹,它可以為你的應用中的實體商品和服務,提供簡單、安全、私密的支付方式。它使得用戶支付起來非常簡便,只需按一下指紋就可以授權進行交易。

Apple Pay 只能在特定的設備上使用,目前為止,這些設備包括 iPhone 6, iPhone 6+, iPad Air 2, iPad mini 3. 這是因為 Apple Pay 需要特定的硬件芯片來支持,這個硬件叫做 Secure Element (簡稱SE,安全元件),他可以用來存儲和加解密信息。

假如說你的應用裡有需要購買才能解鎖的某些特性的話(比如去廣告),你不應該使用 Apple Pay 這種支付方式。 Apple Pay 是用來解決購買實體商品和服務的,例如,聚樂部會員,酒店預訂,訂票等。

為什麼使用 Apple Pay

Apple Pay 大大簡化了開發者的工作。你無需自己來管理卡號,也不需要用戶去注冊銀行卡。你可以移除部分業務模塊,甚至不需要用戶模塊了。購買和賬單信息回自動交由 Apple Pay token 來處理。這意味著簡化了購買流程,可以帶來更高的轉化率。

在 WWDC session 702 , Apple Pay Within Apps 中, Nick Shearer 介紹了部分 Apple Pay 在美國的不同商業交易中超高轉化率的統計情況。

Stubhub 發現使用 Apple Pay 的客戶的轉換率超過傳統客戶 20%。

OpenTable 發現采用了 Apple Pay 之後呈現了 50%的增長。

Staples 發現采用了 Apply Pay 後,實現了109%的轉換率增長。

創建一個簡單的商店應用

我們將創建一個包含商店的應用,演示 Apple Pay 是如何處理我們的交易的。這個應用僅有一個商品,但已經足夠展示如何開始使用 Apple Pay 了。

blob.png

這是我們將要創建的最終頁面。你可以看,當用戶點擊“購買”按鈕時,彈出了一個 Apple Pay 的表單。

Enabling Apple Pay

在我們寫代碼之前,請先確保應用有使用 Apple Pay 的能力。當創建玩空白項目後,打開項目設置,找到 capabilities 這個 tab。

blob.png

你應該能夠在 capabilities 裡看到 Apple Pay 部分,把狀態設置為開啟。這時候會讓你選擇一個開發團隊的授權賬號,希望接下來, Xcode 能夠把設置工作都幫你做好。

我們需要添加一個 Merchant ID,讓 Apple 知道如何去為當前付款信息編碼。點擊在 Merchant ID 位置出現的添加按鈕,填寫你自己的唯一 Merchant ID。在這個例子中,我們使用的是 merchant.com.shinobistore.appleplay。

blob.png

就這些,你可以看到 Apple Pay 已經設置為可用了,你應該可以在應用中使用它了。

使用 Apple Pay

現在,我們已經設置好了配置文件,我們要開始創建 UI 了,以便讓用戶可以購買產品和支付。打開 storyboard 添加一些UI(如下圖),做成產品出售頁面。

blob.png

我們剛才創建的 UI 是一個圖片,帶有標題、價格和描述的文本。這不是這個 demo 的重點。我們需要添加一個按鈕,我們把它添到視圖的下面。我們要添加的按鈕是一個 PKPaymentButton, 這個在 iOS 8.3 時引入。這個按鈕是本地化的,能夠提供標准的樣式。因此,我們強力推薦使用這個按鈕來啟動 Apple Pay 的支付頁面。

這個按鈕有三個樣式

White; WhiteOutLine; Black

同樣具有兩個不同類型

Plain; Buy

有幾種不同的方法可以設置按鈕的樣式。不幸的是,目前還不支持在 Interface Builder 中設置。所以打開 ViewController.swift ,覆蓋 viewDidLoad 方法。

blob.png

這就是我們全部需要做的。它可以自適應,本質上(這個 demo)我們在意的就是這個按鈕。 當我們點擊了按鈕後,在 buyNowButtonTapped 方法裡,我們啟動購買進程。

blob.png

當UI 創建好後,現在我們必須去處理購買流程。首先,我們需要理解 Apple Pay 的一些類的概念。

PKPaymentSummaryItem

這個 Object 是你的 Apple Pay 交易清單上的一條。它可以是商品的,也可以是稅,或者運費。

PKPaymentRequest

PKPaymentRequest 合並你所有想要用戶看到的信息。諸如 merchant identifier, country code 和 currency code。

PKPaymentAuthorisationViewController

PKPaymentAuthorisationViewController 讓用戶及時授權 PKPaymentRequest,並且選擇投遞地址和支付的卡。

PKPayment

PKPayment包括需要處理的交易的信息,並且包含需要用戶確認的消息。

所有這些類都包含在 PassKit(因此以 PK 開頭) 之內,所以你需要在用到 Apple Pay 的地方,引入這個框架。

設置 Payment

第一步要創建一個 PKPaymentRequest, 我們講在下面詳述

blob.png

首先我們創建一個可以接受的支付網絡的數組,它確定了那些類型的卡,是我們可以使用的。

blob.png

然後我們要檢測,當前設備是否可以處理這些類型的交易。canMakePaymentsUsingNetworks 是PKPaymentAuthorizationViewController 中標准的檢測設備是否有交易處理能力的方法。

blob.png

如果設備具備處理交易的能力,上面的代碼,開始自動創建一個交易的請求。注釋信息表明了每行代碼的作用。

blob.png

然後,如上面的代碼,設置你想要在 Apple Pay 表單要顯示的商品信息。他們會在接下來的 paymentSummaryItems 中用到。

blob.png

這個 API 有意思的一點是,在數組最後一個,是用戶總共需要支付多少錢。它在表單的最後,會特別表示出來。在這個例子中,是總價。如果,你希望現實更多的條目,你需要手動計算並且在列表最後,添加一個PKPaymentSummaryItem。

blob.png

最後,給請求設置一個 PKPaymentAuthorizationViewController,設置代理,然後展示給用戶。

blob.png

現在我們需要確認,是否聲明了 PKPaymentAuthorizationViewController 的代理方法。我們需要聲明這些方法,以確認是否生成了交易,並在得到授權或完成後,響應相關事件。

在 paymentAuthorizationViewController:didAuthorizePayment 方法中,我們要使用我們的 provider 處理交易數據,並且返回狀態給應用。返回的 PKPayment 擁有一個 PKPaymentToken 的屬性,我們需要發送給支付的 provider.他是負責編碼和私鑰加密的。

blob.png

在 paymentAuthorizationViewControllerDidFinish 方法中,我們簡單的關閉掉我們的 viewController。

blob.png

這就是全部了。顯然,在現實世界裡,你可能還需要把支付的 token 發送給諸如 Stripe,但這個超出本教程的范圍。我們還添加了一個  controller 來顯示收據。在這個例子中,僅顯示支付 token 的 transactionIdentifier。他是一個被格式化好的的全球唯一的一個字符串,可以用來做收據的驗證。

blob.png

延伸閱讀

更多關於 Apple Pay 的信息,我推薦觀看 WWDC 2015 的 session 702, Apple Pay Within Apps. 這個視頻挺長的,但是如果你對 Apple Pay 感興趣的話,絕對值得觀看。這個 session 中間有一段,講了 Apple Pay 是如何改進交易處理的用戶體驗的。

另外,在蘋果開發者網站上,還有一個文檔 guide to Apple Pay。如果你想要在應用中集成 Apple Pay 的話,它是非常值得一讀的。

最後,別忘了,如果你想觀看我們在 Demo 中創建的項目的話,可以在 Github 上找到他。


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved