你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> iOS 9 學習系列:Apple Pay

iOS 9 學習系列:Apple Pay

編輯:關於IOS

iOS 9 學習系列:Apple Pay

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 了。

iOS 9 學習系列:Apple Pay

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

Enabling Apple Pay

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

iOS 9 學習系列:Apple Pay

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

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

iOS 9 學習系列:Apple Pay

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

使用 Apple Pay

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

iOS 9 學習系列:Apple Pay

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

這個按鈕有三個樣式

White; WhiteOutLine; Black

同樣具有兩個不同類型

Plain; Buy

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

iOS 9 學習系列:Apple Pay

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

iOS 9 學習系列:Apple Pay

當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, 我們講在下面詳述

iOS 9 學習系列:Apple Pay

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

iOS 9 學習系列:Apple Pay

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

iOS 9 學習系列:Apple Pay

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

iOS 9 學習系列:Apple Pay

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

iOS 9 學習系列:Apple Pay

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

iOS 9 學習系列:Apple Pay

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

iOS 9 學習系列:Apple Pay

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

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

iOS 9 學習系列:Apple Pay

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

iOS 9 學習系列:Apple Pay

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

iOS 9 學習系列:Apple Pay

延伸閱讀

更多關於 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