Apple Pay

Apple Pay的簡單介紹。

Apple

Pay并不是獨立的第三方支付服務,相比較支付寶和微信支付,他沒有自己的賬戶,也不參與資金的流動, Apple

Pay只是將原有的實體銀行卡變成手機上“虛擬的銀行卡”。Apple

Pay依賴iPhone系統(tǒng)底層的整合,在便捷程度上,非第三方支付能比。如果你們真的要和第三方的支付對比的話.只說一句話:一個是系統(tǒng)級的,一個是應用級的,剩下的,你們自己看著辦。

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

并且Apple

Pay 也只能在特定的設備上使用,目前為止,這些設備包括 iPhone 6, iPhone 6+, iPad Air? 2, iPad

mini 3. 這是因為 Apple Pay 需要特定的硬件芯片來支持,這個硬件叫做 Secure Element

(簡稱SE,安全元件),他可以用來存儲和加解密信息。可以把他理解成需要一種硬件的支持.

實際上Apple Pay是在2016年的2月份才來到中國大陸.也就是說,如果我們要實現(xiàn)Apple Pay就要讓版本號支持到iOS9.2以上的系統(tǒng).

開發(fā)流程

我們在寫代碼前需要做一些工程的配置:我們需要有一個具有ApplePay服務的APP ID.以及真機測試的證書和描述文件

1、登錄開發(fā)者賬號,創(chuàng)建證書。

創(chuàng)建APPID(都會的,此處不在細說)

最最最重要的有點,我們要勾選ApplePay的服務:

記得勾選Apple Pay服務

然后繼續(xù)

沒錯,你們看見這個Apple Pay服務了。但是他是黃色的不可用的。是不是和我們做遠程推送服務的時候有點像。沒錯,我們還需要一樣東西:Merchant IDs(商業(yè)ID)

或者選擇已有的APPID 編輯, 添加 Apple Pay服務[和推送類 PushNotifications]

已有的APP ID 添加Apple Pay

然后繼續(xù)

創(chuàng)建 Merchant ID(商業(yè)ID)

點擊創(chuàng)建商業(yè)ID

點擊"+"添加

注意商業(yè)ID命名格式,merchant.com.kede.ApplePayDemoCN 這個值,我們工程中需要用到。

商業(yè)ID命名 命名格式一定要正確[此處merchant 字段會自動補全]

注:此處ID 要復制保留一下 xcode工程會用到

continue 繼續(xù)

生成完成后,還沒有結束,我們還需要進行商業(yè)id的修改:

點擊編輯


生成Apple Pay證書

點擊CreateCertificate后會出現(xiàn)這樣的界面

選擇YES

然后, continue。

*******************************************************

[注: 我測試的時候選擇NO 無法創(chuàng)建證書會報以下錯誤]

*******************************************************

接著需要一個CSR文件

CSR文件創(chuàng)建和平常申請證書一樣,就是鑰匙串從證書頒發(fā)機構請求證書

[CertificateSigningRequest.certSigningRequest]

存儲到桌面

然后回到開發(fā)者中心,選擇上傳

選取桌面上的CSR[CertificateSigningRequest.certSigningRequest]

之后就可以繼續(xù),并下載到本地雙擊安裝到鑰匙串,? 然后選擇done

證書創(chuàng)建完成

**************************************

注: 此處測試時候生成的證書安裝到鑰匙串中會提示"此證書是由未知頒發(fā)機構簽名的"[貌似不影響測試] [對接第三方的時候可能會對證書操作]

按照網上方法處理后會變?yōu)?此證書標記為受此賬戶信任".

暫時這樣處理, 還沒找到其他方法

參考:

證書問題

http://www.itdecent.cn/p/a5f0795cf781

**************************************

配置證書和描述文件(真機測試)

接下來就是代碼部分了,新建工程。創(chuàng)建完成后,對當前xcode進行配置信息。

配置xcode [注意bundle id 別錯了]

配置開發(fā)證書

接著還需要配置一個Capabilities

選擇一個可用的Merchant ID

選擇后,如果下面會出現(xiàn)一些紅色的錯誤??赡芤驗槲覀儺斍斑@個工程中的配置還未完成。接著可能需要開發(fā)整證書/發(fā)布證書/描述文件。

這里證書創(chuàng)建,描述文件的創(chuàng)建(齒輪文件)[大家都會的]。

然后證書和描述文件下載下來,雙擊運行。然后繼續(xù)配置xcode

然后你回到Capabilities的位置, 你就會發(fā)現(xiàn),紅色錯誤解決了。

所有配置完成

以上就是Xcode的配置。

接下來,代碼部分:

我們需要添加一個按鈕,進行支付代碼的實現(xiàn)。我們要添加的按鈕是一個 PKPaymentButton, 這個在 iOS 8.3 時引入。這個按鈕是本地化的,能夠提供標準的樣式。因此,我們強力推薦使用這個按鈕來啟動 Apple Pay 的支付頁面。

//??? Type : 類型

//??? PKPaymentButtonTypePlain

//??? PKPaymentButtonTypeBuy

//??? PKPaymentButtonTypeSetUp (ios 9)

//??? PKPaymentButtonTypeInStore (ios 10)

//? ? style : 樣式

//??? PKPaymentButtonStyleWhite

//??? PKPaymentButtonStyleWhiteOutline

//??? PKPaymentButtonStyleBlack

也就是說,系統(tǒng)給我們提供了一個按鈕,專門用來處理ApplePay的操作,其實這個按鈕可不是隨便都可以使用:

顯示 Apple Pay 按鈕

https://developer.apple.com/apple-pay/Apple-Pay-Identity-Guidelines-CN.pdf

首先我們需要在我們的工程中引入頭文件#import

創(chuàng)建UI

支付按鈕方法

我的測試機是國行的 必須要支持銀聯(lián) 否則會崩潰, [countryCode,currencyCode都要正確]

[我個人判斷可能與Merchant ID證書創(chuàng)建的時候有關,我用的開發(fā)者賬號只能選擇YES ]

判斷是否能使用Apple Pay

然后還需要遵循他的協(xié)議并且實現(xiàn)他的代理方法

遵循協(xié)議

實現(xiàn)代理方法:

在Apple Pay驗證了支付之后,仍然需要開發(fā)者來完成交易,這可以用didAuthorizePayment委托方法來完成,它需要你連接服務器并上傳支付令牌和其他信息,以完成整個支付流程。

效果[模擬器]



支付授權的流程:

1.框架發(fā)送支付請求給安全模塊,只有安全模塊可以訪問存儲在設備上的標記化的卡信息。

2.安全模塊把特定的卡和商家等支付數(shù)據(jù)加密,以保證只有蘋果可以讀取,然后發(fā)送給框架??蚣軙⑦@些數(shù)據(jù)發(fā)送給蘋果。

3.蘋果服務器再次加密這些支付數(shù)據(jù),以保證只有商家可以讀取。然后服務器對它進行簽名,生成支付token,然后發(fā)送給設備。

4.框架調用相應的代理方法并傳入這個token,然后你的代理方法傳送token給你的服務器。

也就說,Apple Pay只做了支付信息的傳遞,不做支付功能。真正實現(xiàn)Apple Pay功能的是我們公司的后臺人員。

服務器接收到token后的一般處理流程

1.驗證支付數(shù)據(jù)的哈希表和簽名 為加密過的支付數(shù)據(jù)解碼 向支付處理系統(tǒng)提交支付數(shù)據(jù) 向訂單追蹤系統(tǒng)提交訂單

2.處理支付請求時,你有兩個選擇;你既可以利用支付平臺處理支付請求,也可以自己實現(xiàn)支付請求處理流程。一個常用的支付平臺可以完成上述大部分操作。

注: demo測試的時候 , 首先硬件要支持Apple Pay [iPhone 6 以上設備]

系統(tǒng)版本我用iOS 8.1.1測試的Apple Pay不可用, iOS 9.3.5測試的可以

[網上有資料說是,國內的要iOS 9.2 以上才可以]

相關參考:

1https://developer.apple.com/apple-pay/

2https://support.apple.com/zh-cn/HT203027

3https://developer.apple.com/apple-pay/get-started/cn/

4https://developer.apple.com/apple-pay/Apple-Pay-Identity-Guidelines-CN.pdf

5http://www.itdecent.cn/p/347379007a14

證書準備:http://www.itdecent.cn/p/2e5e45afc246

證書問題

http://www.itdecent.cn/p/a5f0795cf781

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容