Apple Pay支付分享
主要內容
1.目前國內支付體系
2.Apple Pay中產業鏈結構
3.Apple Pay中新技術的應用和集成簡述
4.Apple Pay支付模式
5.Apple Pay銀行卡綁定流程
6.Apple Pay線上支付流程
7.Apple Pay + NFC線下支付流程
8.iOS項目中如何集成Apple Pay
9.Server端需要做的
10.國內支付體系和Apple Pay對比
目前國內支付體系——傳統信用卡支付
??1? 商戶(Merchants)
? 2? 收單方(Acquiring bank) - 替商戶收錢的金融機構,商戶在他們這開戶
? 3? 信用卡組織(Card associations)- 制定規則
? 4? 發卡方(Issuing bank) - 或者叫開戶行,給顧客發信用卡的金融機構
? 5? 顧客(Consumers
利益鏈條
目前國內支付體系——支付寶/微信
在支付寶開戶的過程中,是用戶在支付寶平臺上輸入自己的銀行卡、身份信息和銀行預留手機號完成銀行卡綁卡的,在支付寶上的商戶也是一樣的流程。這意味著商戶和用戶都通過支付寶連接,支付寶和各個銀行直接打交道。
面臨的問題:最核心,最關鍵的挑戰就線下推廣問題,本質上是線下支付體驗問題。
ApplePay中新技術的應用和集成簡述
ApplePay是蘋果公司在2014蘋果秋季新品發布會上發布的一種基于NFC的手機支付功能。
蘋果公司最大限度的提升用戶體驗的背后,是一系列的新技術的應用和集成,包括NFC近場通信、Touch ID指紋識別、SE/Enclave硬件級安全方案、Passbook卡券管理、銀行卡Token化等.
NFC: 用戶將設備靠近嵌有NFC模塊的POS機可進行支付,并確認交易。
Touch ID: Touch ID是蘋果公司推出的指紋識別功能.
Secure Element(安全元件):存儲支付賬戶相關的敏感信息(token及密鑰)、生成與交易相關的校驗數據、傳遞并加密token等。iPhone6/6+設備中與安全相關的部件除了SE,還有用于處理指紋驗證的SecureEnclave.
Passbook:一個類似錢包管理的工具,用戶可以在Passbook中管理銀行卡,包括添加、刪除、設置默認銀行卡,最多可管理8張銀行卡。
token(令牌):token簡單的說就是銀行卡號的別名.
Apple Pay中產業鏈結構
apple pay產業鏈中涉及的角色包括蘋果公司、支付網絡服務商、支付服務提供商、支付商家、用戶,各角色在產業鏈中的定位和具體作用分析如下:
1)蘋果公司:提供整套支付解決方案,包括:
負責支付用戶認證,保障支付安全,包括提供TouchID認證、使用SE;
提供Passbook卡券管理工具;
作為token申請者和使用者,負責申請、存儲和使用Token;
向用戶提供銀行卡綁定服務,包括銀行卡信息的獲取、跟發卡行交互校驗銀行卡有效性、銀行卡token化等;
為支付商家提供證書服務,接受支付商家的證書注冊申請,并分發公鑰密鑰對;
為支付商家提供整套支付業務開發接口(PassKit)。
2)支付網絡服務商 :提供支付網絡服務,是applepay得以運行的關鍵參與方,蘋果公司支付業務的戰略合作伙伴,可能包含多種角色功能,如:
充當Token ServersProvider(令牌服務提供商,TSP),在綁定銀行卡階段為蘋果公司生成token,在交易階段將token轉化為真實卡號,以及交易數據加解密,參與基于token的清結算等;
承擔傳統卡組織的角色,包括對轉化為真實銀行卡號之后的卡號進行路由轉發、清分、結算;
承擔收單行的角色,包括對交易進行受理,對token進行識別,并轉發到TSP;
3)支付服務提供商:基于本機構的支付賬戶為用戶和支付商戶提供最終的扣款支付服務,如銀行、擁有支付賬戶的第三方支付公司等,銀行和第三方支付公司要成為蘋果公司的支付服務提供商必須首先向蘋果公司申請,其完成的功能包括:
接入蘋果公司選擇的支付網絡服務商、支持Token支付流程;
為支付商家提供支付SDK包,以協助支付商家開發支付接口;
保存支付商家的私鑰,并使用私鑰解密交易數據;
接受支付商家的支付請求,完成用戶賬戶的扣款,并清結算到支付商家賬戶。
4)支付商家:為用戶提供商品或服務,發起支付請求。要成為蘋果公司的支付商家,必須先向蘋果公司申請,并獲取證書和公私密鑰對;同時向支付服務提供商注冊支付賬戶(必須擁有支付服務提供商的支付賬戶),支付商家的角色功能包括:
利用蘋果公司的Passkit開發包為用戶提供商品或服務界面;
首先向applepay發起支付請求,收到交易Token后,調用支付服務提供商的SDK包,向支付服務提供商發起支付交易請求。
5)用戶 :支付服務的最終使用者,用戶的角色功能包括:
添加applepay能受理的支付服務提供商的賬戶信息,目前是支持token化的銀行卡,未來可能包括支持token化的第三方支付公司賬戶;
注冊指紋信息,激活Touch ID;
在支付商家選購商品或服務,使用Touch ID確認支付。
Apple Pay在支付中角色
Apple Pay支付模式
iPhone上的「NFC+指紋」提供了無人能及的支付體驗。NFC技術來代替原來信用卡的磁條,指紋來做授權驗證,代替信用卡支付中的簽名。簡單來說,iPhone代替了信用卡塑料卡片,并且省去了簽名。
那么問題來了:
如果用戶丟了手機就相當于丟了信用卡,安全問題如何解決?
ApplePay方案如下:iPhone上不直接存儲信用卡信息,而是一個由卡組織發放加密的一個token,存放在iPhone的獨立安全芯片中(叫SE芯片),用它代替磁條上的信息,可以理解為token和信用卡上的磁條等價。只有指紋認證通過的時候,iPhone才允許你利用NFC讀取token出來。假設token泄漏,也無法逆向還原出信用卡信息。
Apple Pay的綁卡是在線的,你需要首先在iPhone輸入信用卡信息,ApplePay把你的信用卡信息拿到卡組織處驗證,卡組織驗證通過后,將token發送到Apple Pay,存放在iPhone的安全芯片中。
Apple Pay的支付過程是離線的,注意,這也是為什么AppleWatch也可以用Apple Pay的原因。可以把iPhone簡單理解為一張信用卡。ApplePay只做了蘋果最擅長的事情,整個支付網絡和傳統信用卡線下支付沒有任何區別。
Apple Pay銀行卡綁定流程
applepay的銀行卡綁定流程基本是EMVCo(國際芯片卡標準化組織)在token規范中定義的token申請開通流程,其功能主要就是向TSP(token服務提供商)申請與銀行卡對應的token,并將token值保存到SE中,以便后續交易使用,如下圖所示,流程說明如下:
用戶(持卡人)出示銀行卡號(PAN,主帳號),申請使用applepay;
蘋果公司向token服務提供商(TSP)發送持卡人的PAN,申請token;
TSP生成token,并向持卡人的發卡行發起銀行卡賬號驗證;
發卡行確認銀行卡有效性,并對token進行確認;
TSP向蘋果公司反饋token;
蘋果公司將token保存在SE中(包括對應的密鑰)。
Apple Pay線上支付流程
流程說明如下
在線支付商家提供商品或服務展示界面,并集成applepay功能;用戶選擇了某商品或服務后,點擊“apple pay”支付按鍵,發起支付請求;
用戶按下指紋,使用Touch ID驗證用戶身份;
指紋識別通過后,SE生成token數據,包括之前申請和保存在SE中的相應銀行卡的token,以及token密文(根據本次交易信息生成的校驗碼,類似MAC);
支付商家收到SE生成的支付用戶信息后,用注冊時申請的公鑰加密支付信息,并將該信息與用戶信息一起打包,發送給對應的支付服務提供商;
支付服務提供商核對token密文,轉換token為銀行卡號(此過程需要跟支付網絡服務商或TSP交互完成),然后解密支付信息,使用銀行卡號完成支付。
可見在線上支付流程中,apple pay承擔的功能是驗證TouchID和提供token。
NFC線下支付流程
流程說明如下:
線下商家完成選購的商品信息輸入后,提示用戶刷卡支付;
用戶拿出iPhone手機,按下指紋,TouchID驗證通過后,SE生成token數據,包括之前申請和保存在SE中的相應銀行卡的token,以及token密文(根據本次交易信息生成的校驗碼,類似MAC),發送token給NFCPOS;
NFC POS將token以及支付交易信息提交給支付網絡服務商;
支付網絡服務商與TSP交互,完成token轉換,得到用于實際支付的銀行卡號(PAN);
支付網絡服務商將PAN和支付交易信息提交給發卡行;
發卡行驗證PAN,完成支付。
在NFC線下支付流程中,apple pay承擔的功能仍然是驗證TouchID和提供token,跟線上支付流程基本沒有差別,對apple pay來說,實現了線上支付流程和線下支付流程的統一。
iOS項目中如何集成Apple Pay
第一步先修改target為iOS8.1,然后在項目Capabilities里將Apple Pay設置為on,這將自動導入需要的庫文件,然后添加一個權限文件并設置,最后修改App ID
設置項目
ApplePay使用了PassKit框架,所以需要導入頭文件:
#import <PassKit/PassKit.h>
還需要接收ApplePay處理信息的回調,遵守PKPaymentAuthorizationViewControllerDelegate協議:
@interface ViewController :UIViewController
<PKPaymentAuthorizationViewControllerDelegate>
創建支付請求
首先你需要確認設備是否支持ApplePay支付,確認的代碼是:
if([PKPaymentAuthorizationViewControllercanMakePayments]) {
???...
}
在上面的代碼塊里,使用PKPayment類來創建支付請求。下面是相應的代碼,需要將其中一些信息修改成自己的,比如merchantIdentifier需要與之前創建的MerchantID相匹配。
PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
request.countryCode = @"US";
request.currencyCode = @"USD";
request.supportedNetworks = @[PKPaymentNetworkAmex,PKPaymentNetworkMasterCard, PKPaymentNetworkVisa];
request.merchantCapabilities =PKMerchantCapabilityEMV;
request.merchantIdentifier = @"merchant.com.myMerchantID";
iOS項目中如何集成ApplePay
實現代理方法
被請求的代理方法是被認證成功和認證完成兩個事件調用的。是否解除viewcontroller,以及讓用戶知道認證是否成功都取決于你。方法的簽名如下:
-(void)paymentAuthorizationViewController:didAuthorizePayment:completion:
-(void)paymentAuthorizationViewControllerDidFinish:
Server端需要做的
1.接入蘋果公司選擇的支付網絡服務商、支持Token支付流程;
2.為支付商家提供支付SDK包,以協助支付商家開發支付接口;
3.保存支付商家的私鑰,并使用私鑰解密交易數據;
4.接受支付商家的支付請求,完成用戶賬戶的扣款,并清結算到支付商家賬戶。
國內支付體系和Apple Pay對比| 支付寶/微信 | Apple Pay | ||
| 積累優勢 | 歷史產品用戶 | iPhone 6/6 plus新用戶 | |
| 用戶推廣 | 預裝、補貼、支付場景切入 | iPhone銷售量 | |
| 用戶推廣特點 | 燒錢、速度慢 | 賺錢,速度快 | |
| 商戶推廣 | 自己部署新POS機 | 收單方主動升級POS機 | |
| 商戶推廣特點 | 燒錢、速度慢 | 不直接面對商戶 | |
| 商戶接受度 | 需要教育 | 學習成本低,手續費和信用卡一樣 | |
| 用戶體驗 | 麻煩(二維碼) | 體驗很好 | |
| 安全 | 必須記錄所有消費行為 | 無法記錄任何消費細節 | |
| 全球化 | 艱難 | 低阻力 | |
| 風險 | 高,涉及結算 | 低,不涉及結算 | |
| 收益 | 高,手續費+利息 | 相對低,手續費的一部分 | |
總結
以上是生活随笔為你收集整理的Apple Pay支付分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用计算机pol计算方位角,如何通过编程代
- 下一篇: ps教学之logo设计。