iOS App集成Apple Pay教程

蘋果發佈了iOS 8.1版本,並正式開放了Apple Pay支付系統。Apple Pay是一個基於NFC的支付系統,不久將被數以萬計的線下零售商店予以支持。即便這項科技並不是徹底的突破性進展,但它足以推動許多公司和零售商來支持這種支付方式,併成爲蘋果的又一項成功的投資。

Apple Pay還給開發者帶來了處理支付的新渠道,用戶將期望在應用中使用它,因爲它將驗證和交易極端簡化,僅需手指輕輕一觸即可完成,如果應用裏面有涉及到交易,開發者很有必要集成Apple Pay。那麼如何將Apple Pay功能集成到你的應用裏呢?

在App裏設置Apple Pay

Screen-Shot-2014-10-21-at-1.31.40-PM

Xcode 6.1提供了非常方便的界面來設置Apple Pay。第一步先修改target爲iOS 8.1,然後在項目Capabilities裏將Apple Pay設置爲on,這將自動導入需要的庫文件,然後添加一個權限文件並設置,最後修改或創建你的App ID。

screen1

你可能會注意到上面沒有有效的Merchant ID,我們需要創建一個,訪問蘋果iOS 開發者中心的位於Identifiers > Merchant ID的 頁面 。 

然後隨着流程指引,創建一個Merchant ID並註冊它。

screen2

現在,我們需要給Merchant ID添加一個證書簽名請求(Certificate Signing Request),以便加密支付令牌來保證其安全性。爲達到這個目的,導航至你的Merchant ID,並點擊Edit按鈕來修改它。

screen3

現在,你需要創建一個證書。點擊下面的按鈕,並跟隨蘋果的流程指引。

screen4

現在Merchant ID設置好了,你可以回到Xcode並刷新Merchant ID區塊,如果一切正常,你應當看到剛創建的ID出現在列表上。將它選中,然後可以進入下一部分。

screen5

編寫代碼

我們在Github上提供了一個集成Apple Pay的示例項目: cjbeauchamp/ApplePayDemo ,權限文件和App設置文件已經剝離出去了,可以放心將它添加到你自己的項目裏。下面我們將討論一些開發中的要點。 

設置項目

Apple Pay使用了PassKit框架,所以你需要在適當的文件裏導入頭文件:

#import <PassKit/PassKit.h>

你還需要接收Apple Pay處理信息的回調,所以確保將委託添加到接收類上:

@interface ViewController : UIViewController<PKPaymentAuthorizationViewControllerDelegate>

創建支付請求

首先你需要確認設備是否支持Apple Pay支付,確認的代碼是:

if([PKPaymentAuthorizationViewController canMakePayments]) { ... }

在上面的代碼塊裏,你能使用PKPayment類來創建支付請求。下面是相應的代碼,你需要將其中一些信息修改成自己的,比如merchantIdentifier需要與你之前創建的Merchant ID相匹配。

PKPaymentRequest *request = [[PKPaymentRequest alloc] init];request.countryCode = @"US";request.currencyCode = @"USD";request.supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa];request.merchantCapabilities = PKMerchantCapabilityEMV;request.merchantIdentifier = @"merchant.com.myMerchantID";

添加物品到支付頁

你可以使用PKPaymentSummaryItem來創建物品並顯示,這個對象描述了一個物品和它的價格,數組最後的對象必須是總價格。

PKPaymentSummaryItem *widget1 = [PKPaymentSummaryItem summaryItemWithLabel:@"Widget 1" amount:[NSDecimalNumber decimalNumberWithString:@"0.99"]];PKPaymentSummaryItem *widget2 = [PKPaymentSummaryItem summaryItemWithLabel:@"Widget 2" amount:[NSDecimalNumber decimalNumberWithString:@"1.00"]];PKPaymentSummaryItem *total = [PKPaymentSummaryItem summaryItemWithLabel:@"Grand Total" amount:[NSDecimalNumber decimalNumberWithString:@"1.99"]];request.paymentSummaryItems = @[widget1, widget2, total];

顯示認證視圖

最後,顯示由PassKit框架提供的view controller,接下來它將自動處理認證。

PKPaymentAuthorizationViewController *paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];paymentPane.delegate = self;[self presentViewController:paymentPane animated:TRUE completion:nil];

實現委託方法

被請求的委託方法是被認證成功和認證完成兩個事件調用的。是否解除view controller,以及讓用戶知道認證是否成功都取決於你。方法的簽名如下:

- (void)paymentAuthorizationViewController:didAuthorizePayment:completion:- (void)paymentAuthorizationViewControllerDidFinish:

支付驗證

在Apple Pay驗證了支付之後,仍然需要開發者來完成交易,這可以用didAuthorizePayment委託方法來完成,它需要你連接服務器並上傳支付令牌和其他信息,以完成整個支付流程。在服務器呼叫結束後,你需要調用completion方法,摒棄提供success或failure標記的參數。你可以在示例代碼裏找到具體實現。

監控並優化交易

Apple Pay是現有的結賬流程非常棒的解決方案,在應用裏使用它無疑會讓用戶們高興。儘管Apple Pay讓支付流程極端簡化,仍然有許多變動地方,他們的表現將直接與app的營收掛鉤。

交易監控

Crittercism公司的新Transaction Management是一種很棒的方法,用來監控各種交易確保它們工作正常。如果一個API端末或服務執行緩慢,或者如果用戶決定取消交易,或者你的應用崩潰了,你需要知道這些信息才能更好的優化它們。你可以到 Crittercism官方網站 瞭解更多信息。 

總結

希望這個入門教程讓你更好的理解和使用Apple Pay。別忘了閱讀蘋果的指南和文檔來了解如何與供應商集成,以及用戶界面的指導規範。你可以在蘋果Apple Pay的 官網 上找到它們

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章