iOS9 Day-by-Day :: Day 8 :: Apple Pay

原文地址

這是一個系列文章,查看更多請移步目錄頁

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

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

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

為什么使用 Apple Pay

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

在 WWDC session 702 , Apple Pay Within Apps 中, Nick Shearer 介紹了部分 Apple Pay 在美國的不同商業(yè)交易中超高轉(zhuǎn)化率的統(tǒng)計情況。

Stubhub 發(fā)現(xiàn)使用 Apple Pay 的客戶的轉(zhuǎn)換率超過傳統(tǒng)客戶 20%。

OpenTable 發(fā)現(xiàn)采用了 Apple Pay 之后呈現(xiàn)了 50%的增長。

Staples 發(fā)現(xiàn)采用了 Apply Pay 后,實(shí)現(xiàn)了109%的轉(zhuǎn)換率增長。

創(chuàng)建一個簡單的商店應(yīng)用

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


result

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

Enabling Apple Pay

在我們寫代碼之前,請先確保應(yīng)用有使用 Apple Pay 的能力。當(dāng)創(chuàng)建玩空白項(xiàng)目后,打開項(xiàng)目設(shè)置,找到 capabilities 這個 tab。


enabling apple pay 1

你應(yīng)該能夠在 capabilities 里看到 Apple Pay 部分,把狀態(tài)設(shè)置為開啟。這時候會讓你選擇一個開發(fā)團(tuán)隊(duì)的授權(quán)賬號,希望接下來, Xcode 能夠把設(shè)置工作都幫你做好。

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


enabling apple pay 2

就這些,你可以看到 Apple Pay 已經(jīng)設(shè)置為可用了,你應(yīng)該可以在應(yīng)用中使用它了。

使用 Apple Pay

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


view setup

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

這個按鈕有三個樣式

White; WhiteOutLine; Black

同樣具有兩個不同類型

Plain; Buy

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

code 1

這就是我們?nèi)啃枰龅?。它可以自適應(yīng),本質(zhì)上(這個 demo)我們在意的就是這個按鈕。 當(dāng)我們點(diǎn)擊了按鈕后,在 buyNowButtonTapped 方法里,我們啟動購買進(jìn)程。

UI setup

當(dāng)UI 創(chuàng)建好后,現(xiàn)在我們必須去處理購買流程。首先,我們需要理解 Apple Pay 的一些類的概念。

PKPaymentSummaryItem

? ? 這個 Object 是你的 Apple Pay 交易清單上的一條。它可以是商品的,也可以是稅,或者運(yùn)費(fèi)。

PKPaymentRequest

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

PKPaymentAuthorisationViewController

? ? PKPaymentAuthorisationViewController 讓用戶及時授權(quán) PKPaymentRequest,并且選擇投遞地址和支付的卡。

PKPayment

? ? PKPayment包括需要處理的交易的信息,并且包含需要用戶確認(rèn)的消息。

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

設(shè)置 Payment

第一步要創(chuàng)建一個 PKPaymentRequest, 我們講在下面詳述

code 2

首先我們創(chuàng)建一個可以接受的支付網(wǎng)絡(luò)的數(shù)組,它確定了那些類型的卡,是我們可以使用的。

code 3

然后我們要檢測,當(dāng)前設(shè)備是否可以處理這些類型的交易。canMakePaymentsUsingNetworks 是PKPaymentAuthorizationViewController 中標(biāo)準(zhǔn)的檢測設(shè)備是否有交易處理能力的方法。

code 4

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

code 5

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

code 6

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

code 7

最后,給請求設(shè)置一個 PKPaymentAuthorizationViewController,設(shè)置代理,然后展示給用戶。

pay style

現(xiàn)在我們需要確認(rèn),是否聲明了 PKPaymentAuthorizationViewController 的代理方法。我們需要聲明這些方法,以確認(rèn)是否生成了交易,并在得到授權(quán)或完成后,響應(yīng)相關(guān)事件。

在 paymentAuthorizationViewController:didAuthorizePayment 方法中,我們要使用我們的 provider 處理交易數(shù)據(jù),并且返回狀態(tài)給應(yīng)用。返回的 PKPayment 擁有一個 PKPaymentToken 的屬性,我們需要發(fā)送給支付的 provider.他是負(fù)責(zé)編碼和私鑰加密的。

code 8

在 paymentAuthorizationViewControllerDidFinish 方法中,我們簡單的關(guān)閉掉我們的 viewController。

code 9

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

confirmation

延伸閱讀

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

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

最后,別忘了,如果你想觀看我們在 Demo 中創(chuàng)建的項(xiàng)目的話,可以在 Github 上找到他。

這是一個系列文章,查看更多請移步目錄頁

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

推薦閱讀更多精彩內(nèi)容

  • 本文翻譯自iOS9 Day-by-Day系列文章之一,原文地址 這是一個系列文章,查看更多請移步目錄頁 Apple...
    scorpio_yang閱讀 586評論 0 0
  • 本文翻譯自Chris Grant的《iOS9 Day-by-Day :: Day8 :: Apple Pay》(h...
    戴維營教育閱讀 997評論 4 7
  • Apple Pay 一個方便 & 安全的移動支付技術(shù),讓用戶完成他們的支付環(huán)節(jié)并把支付相關(guān)的信息告訴你 只可以購買...
    skingtree閱讀 2,136評論 0 4
  • 1.About Apple Pay Apple Pay是一種移動支付技術(shù),讓使用者把它們對真實(shí)的物品和服務(wù)的支付信...
    NEWWORLD閱讀 5,258評論 14 51
  • 關(guān)于 Apple Pay apple pay 是一種移動支付技術(shù),它可以讓用戶將自己在現(xiàn)實(shí)生活中購物、享受服務(wù)的支...
    LuxDark閱讀 546評論 0 2