apple Pay

第一步:支持ios8.1及以上,因此須要修改app的target爲iOS 8.1ios

第二步:在項目Capabilities裏將Apple Pay設置爲on,將自動導入須要的庫文件passkit.framework,而後添加一個權限文件並設置,最後修改或建立你的App ID數組

第三步:安全

咱們須要建立一個,訪問蘋果iOS 開發者中心的位於Identifiers > Merchant ID的頁面。而後隨着流程指引,建立一個Merchant ID並註冊它。咱們須要給Merchant ID添加一個證書籤名請求(Certificate Signing Request),以便加密支付令牌來保證其安全性。爲達到這個目的,導航至你的Merchant ID,並點擊Edit按鈕來修改它。點擊下面的Create Certificate按鈕,並跟隨蘋果的流程指引完成建立。服務器

第四步:app

如今Merchant ID設置好了,你能夠回到Xcode並刷新Merchant ID區塊,若是一切正常,你應當看到剛建立的ID出如今列表上。將它選中,而後能夠進入下一部分。編寫代碼框架

代碼ide

Apple Pay使用了PassKit框架,因此你須要在適當的文件裏導入頭文件:優化

1網站

#import <passkit passkit.h=""></passkit>加密

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

1

2

@interface ViewController : UIViewController

<pkpaymentauthorizationviewcontrollerdelegate></pkpaymentauthorizationviewcontrollerdelegate>

建立支付請求

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

1

2

3

if([PKPaymentAuthorizationViewController canMakePayments]) { 

    ... 

}

在上面的代碼塊裏,你能使用PKPayment類來建立支付請求。下面是相應的代碼,你須要將其中一些信息修改爲本身的,好比merchantIdentifier須要與你以前建立的Merchant ID相匹配。

1

2

3

4

5

6

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來建立物品並顯示,這個對象描述了一個物品和它的價格,數組最後的對象必須是總價格。

1

2

3

4

5

6

7

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,接下來它將自動處理認證。

1

2

3

PKPaymentAuthorizationViewController *paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];

paymentPane.delegate = self;

[self presentViewController:paymentPane animated:TRUE completion:nil];

實現委託方法

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

1

2

- (void)paymentAuthorizationViewController:didAuthorizePayment:completion:

- (void)paymentAuthorizationViewControllerDidFinish:

支付驗證

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

監控並優化交易

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

交易監控

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

相關文章
相關標籤/搜索