1、什麼是Apple Pay?php
1. 概念html
Apple Pay,簡單來講, 就是一種移動支付方式。經過Touch ID/ Passcode,用戶可以使用存儲在iPhone 6, 6p等設備上的信用卡和借記卡支付證書來受權支付; 它是蘋果公司在2014蘋果秋季新品發佈會上發佈的一種基於NFC的手機支付功能,於2014年10月20日在美國正式上線,2016年2月18日凌晨5:00, Apple Pay 業務在中國上線。git
2. 使用前提github
(1). 支持設備數組
Apple Pay支持的硬件設備 (表1)安全
線上 | 線下 | 線上&線下 |
iPad Pro服務器 |
Apple Watch微信 |
iPhone 6網絡 |
iPad Air 2app |
iPhone 6 Plus |
|
iPad mini 3 |
iPhone 6s |
|
iPad mini 4 |
iPhone 6s Plus |
(2). 系統支持(iOS8.0+版本, 注意:iOS9.2才真正的支持「銀聯支付」, 意味着iOS9.2之後才能夠在中國市場使用)
(3). 銀行支持
須要將被支持銀行的銀行卡, 添加到手機wallet應用當中
2、 應用場景?
1. 線下支付
> 除下使用前提以外, 還要求
> 商家支持(要求必須有支持NFC的刷卡機)
若是發現如下標識,就表明該商家支持Apple Pay
蘋果公開的Apple Pay商家有:
2. 線上支付
> 除下使用前提以外, 還要求
> App 支持
目前支持Apple Pay支付方式的App並很少。不少公司也在集成當中,這也是寫這篇博客的目的。
惟品會 | 大衆點評 |
![]() |
![]() |
目前, 蘋果公開的支持Apple Pay的APP列表
3、 與微信支付以及支付寶等第三方支付平臺的區別?
1. 硬件方面
Apple Pay:必須是iOS設備, 並且是按照線上支付和線下支付區分不一樣的真機設備(具體參考表1)
微信、支付寶: 基本跟硬件設備無關, 支持大多數的只能手機
2. 網絡環境要求
Apple Pay:線上支付須要聯網, 線下支付無需聯網就能夠支付
微信、支付寶: 不管是線上仍是線下支付, 都須要聯網使用
3. 使用技術
Apple Pay:線下支付使用的是 基於NFC的近場通信技術
微信、支付寶: 線下支付使用的是 掃碼支付(條形碼、二維碼)
4. 主要功能
Apple Pay:線上支付、線下支付、部分升級後的ATM機能夠取款
微信、支付寶: 線上支付、線下支付、轉帳、理財等
5. 安全性能
Apple Pay:不保留銀行卡信息,而且不會暴漏給外界、不分流銀行存款(不須要從銀行卡轉錢到另一個平臺)、不能充值 安全性較高
微信、支付寶: 密碼保護,身份驗證等手段保護帳戶 安全性相對稍差
6. 支付時長
Apple Pay:不管是線上支付,仍是線下支付, 只須要驗證指紋便可支付。很是迅速
微信、支付寶: 須要掃碼支付, 流程相對繁瑣,因此時長較長
7. 各自弊端
Apple Pay:只適用於蘋果設備, 支付場景單一,無轉帳理財等業務
微信、支付寶: 安全性較差, 必須聯網操做,須要充值到對應平臺
4、線上支付集成步驟
1. 配置支付環境
添加一個App ID
配置Merchant ID
爲Merchant ID 配置證書, 並下載證書安裝到鑰匙串
檢查安裝到鑰匙串中的證書是否有效
綁定Merchant ID 到 APP ID
2. 配置Xcode 項目
調整系統最低部署版本(iOS8.0)
開啓Apple Pay功能
3. 代碼實現
4. 服務器處理
5、 具體步驟實現
1. 配置支付環境
(1)添加一個App ID, 並勾選Apple Pay功能
(2)配置Merchant ID
(3)爲Merchant ID 配置證書, 並下載證書安裝到鑰匙串
(4)檢查安裝到鑰匙串中的證書是否有效
問題描述: 有可能會出現提示
問題緣由: 系統根證書/中級證書頒發機構過時
解決方案: 從新下載證書, 並安裝,具體下載列表看下圖
(5)綁定Merchant ID 到 APP ID
2. 配置Xcode 項目
注意: 以上步驟截圖, 只是關鍵處截圖, 若是在具體細節處遇到問題, 歡迎關注公衆號(王順子),共同探討。或者參照具體視頻教程, 連接地址, 後續附上。
3. 代碼實現
(1)判斷當前設備是否能夠支付
1 2 3 4 5 |
|
(2)判斷"Wallet有沒有添加該支付網絡的儲蓄卡/信用卡"
1 2 3 4 5 6 7 8 9 10 11 12 |
|
(3)建立一個支付請求, 並配置各項信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
|
(4)彈出受權控制器,讓用戶給支付受權
1 2 3 4 5 6 7 8 |
|
(5)處理支付憑證(token)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
(6)關閉受權控制器
1 2 3 4 5 6 7 8 |
|
* 支付受權的流程:
框架發送支付請求給安全模塊,只有安全模塊能夠訪問存儲在設備上的標記化的卡信息。
安全模塊把特定的卡和商家等支付數據加密,以保證只有蘋果能夠讀取,而後發送給框架。框架會將這些數據發送給蘋果。
蘋果服務器再次加密這些支付數據,以保證只有商家能夠讀取。而後服務器對它進行簽名,生成支付token,而後發送給設備。
框架調用相應的代理方法並傳入這個token,而後你的代理方法傳送token給你的服務器。
4. 服務器接收到token後的通常處理流程
處理支付請求時,你有兩個選擇;你既能夠利用支付平臺處理支付請求,也能夠本身實現支付請求處理流程。一個經常使用的支付平臺能夠完成上述大部分操做。
關於支持Apple Pay支付平臺的更多信息,請參考developer.apple.com/apple-pay/
6、資料附件
源碼地址: https://github.com/wangshunzi/ApplePayDemo.git
視頻教程:http://pan.baidu.com/s/1mhzzqic 提取碼:gghg
參看:http://bbs.520it.com/forum.php?mod=viewthread&tid=254
:http://www.cnblogs.com/dashunzi/archive/2016/02/23/ApplePay.html