1. 程式人生 > >iOS銀聯ApplePay控制元件開發

iOS銀聯ApplePay控制元件開發

自從今早上蘋果準備向大陸開發Apple Pay,朋友圈以及各種QQ群裡就開始炸開了鍋,而且據說有幾個比較前衛的公司已經開始支援了Apple Pay,所以呢,我們的產品老大也閒不住了,加上自己還是比較感興趣的,於是乎,自己開始東西寫Demo了,就當趕個潮流吧。

  1. Apple Pay支付到底是怎麼的流程
    首先Apple Pay分為線上線下兩種支付方式,網上所謂的不需要網路直接可以支付指的是線下支付,此支付方式利用的是NFC,通過NFC技術與商家進行連線,然後通過NFC傳遞你所繫結卡的銀行資訊到商戶的NFC裝置上,然後商戶進行處理,就類似於刷卡,你拿著卡商戶在pos機上刷是一樣的,只不過,這裡的卡變成了手機而已。
    其次是應用內支付,應用內支付呢,這個就需要網路了,因為你得自己處理你得支付。現在銀聯已經推出了支援Apple Pay的SDK,地址如下:
    https://open.unionpay.com/ajweb/help/file/techFile?productId=80

    你只需要在你需要喚起Apple Pay的頁面上呼叫銀聯sdk提供的方法就可以了,銀聯sdk已經將Apple Pay的支付控制元件整合好了。綜上來看,所謂的Apple Pay支付並不是說只需要利用蘋果提供的支付框架,還需要第三方銀聯的支援,客戶端只是利用蘋果提供的框架做了兩件事,一件事就是touch id的校驗,另一件事就是將你繫結的銀行卡的資訊經過加密傳遞給商戶或者本地sdk方進行處理。應用銀聯sdk進行充值流程類似於支付寶、微信,都是後臺生成流水訂單號,然後你呼叫進行充值,銀聯非同步通知伺服器。
  2. 銀聯簽約
    首先商戶需要向銀聯申請簽約ApplePay服務,https://open.unionpay.com/ajweb/product/detail?id=80 ,簽約可能需要什麼公司營業執照一類的,好像現在什麼三證合一了,一個證就可以搞定了,具體需要什麼請註冊銀聯技術服務看相關說明。
    等提交資料後就等待稽核就好了,在這裡不得不吐槽一下銀聯的辦事效率,我只有三個字想說,真墨跡!反正我們是用了將近一個月才把資格審下來,然後銀聯給了我們一個文件告訴我們用來先測試,在這裡特別強調一下,如果你是跟銀聯合作來使用Apple Pay的話,需要的csr證書是銀聯提供給你的,並不是你自己去蘋果官網利用鑰匙串請求下來的,等測試成功後,然後銀聯會再讓你提供測試資料再進行稽核,稽核通過後,銀聯便會正式給你簽約,給你正式環境的csr檔案,你再重新申請相關證書。
  3. 銀聯sdk程式碼實現
    下載銀聯的sdk,然後將裡面的證書以及bundle以及merchantID換成你自己的然後測試一下,因為Apple Pay在中國使用要求的裝置為6以及iOS9.2以上版本,所以在你寫程式碼的時候就要進行處理了。
    //判斷裝置是否支援Apple Pay並且版本是否為9.2以上
    if ([PKPaymentAuthorizationViewController canMakePayments] && SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9.2")) {
    //判斷是否支援銀聯付款方式
    if([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkChinaUnionPay]])
    {
    //銀聯sdk提供的方法呼叫
    [UPAPayPlugin startPay:tn mode:self.tnMode viewController:self delegate:self andAPMechantID:kAppleMerchantID];
    } else {
    //如果沒有繫結銀聯的卡,進入Apple Pay設定頁面
    PKPassLibrary *pkpass = [[PKPassLibrary alloc] init];
    [pkpass openPaymentSetup];
    }
    } else {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Warning" message:@"No support" delegate:nil cancelButtonTitle:@"Sure" otherButtonTitles:nil, nil];
    [alert show];
    }