Apple Pay--iOS开发
2016-07-11 00:00
477 查看
一、什么是ApplePay?
1.概念
ApplePay,简单来说,就是一种移动支付方式。通过TouchID/Passcode,用户可使用存储在iPhone6,6p等设备上的信用卡和借记卡支付证书来授权支付;它是苹果公司在2014苹果秋季新品发布会上发布的一种基于NFC的手机支付功能,于2014年10月20日在美国正式上线,2016年2月18日凌晨5:00,ApplePay业务在中国上线。
2.使用前提
(1).支持设备
ApplePay支持的硬件设备(表1)
(2).系统支持(iOS8.0+版本,注意:iOS9.2才真正的支持“银联支付”,意味着iOS9.2以后才可以在中国市场使用)
(3).银行支持
需要将被支持银行的银行卡,添加到手机wallet应用当中
二、应用场景?
1.线下支付
>除下使用前提之外,还要求
>商家支持(要求必须有支持NFC的刷卡机)
如果发现以下标识,就代表该商家支持ApplePay
苹果公开的ApplePay商家有:
2.线上支付
>除下使用前提之外,还要求
>App支持
目前支持ApplePay支付方式的App并不多。很多公司也在集成当中,这也是写这篇博客的目的。
目前,苹果公开的支持ApplePay的APP列表
三、与微信支付以及支付宝等第三方支付平台的区别?
1.硬件方面
ApplePay:必须是iOS设备,而且是按照线上支付和线下支付区分不同的真机设备(具体参考表1)
微信、支付宝:基本跟硬件设备无关,支持大多数的只能手机
2.网络环境要求
ApplePay:线上支付需要联网,线下支付无需联网就可以支付
微信、支付宝:无论是线上还是线下支付,都需要联网使用
3.使用技术
ApplePay:线下支付使用的是基于NFC的近场通讯技术
微信、支付宝:线下支付使用的是扫码支付(条形码、二维码)
4.主要功能
ApplePay:线上支付、线下支付、部分升级后的ATM机可以取款
微信、支付宝:线上支付、线下支付、转账、理财等
5.安全性能
ApplePay:不保留银行卡信息,并且不会暴漏给外界、不分流银行存款(不需要从银行卡转钱到另外一个平台)、不能充值安全性较高
微信、支付宝:密码保护,身份验证等手段保护账户安全性相对稍差
6.支付时长
ApplePay:无论是线上支付,还是线下支付,只需要验证指纹即可支付。非常迅速
微信、支付宝:需要扫码支付,流程相对繁琐,所以时长较长
7.各自弊端
ApplePay:只适用于苹果设备,支付场景单一,无转账理财等业务
微信、支付宝:安全性较差,必须联网操作,需要充值到对应平台
四、线上支付集成步骤
1.配置支付环境
使用XCode创建一个工程,并设置好对应的BundleID
注册并配置一个商业标示符
添加一个AppID
配置MerchantID
为MerchantID配置证书,并下载证书安装到钥匙串
检查安装到钥匙串中的证书是否有效
绑定MerchantID到APPID
2.配置Xcode项目
调整系统最低部署版本(iOS8.0)
开启ApplePay功能
3.代码实现
判断当前设备是否可以支付
判断"Wallet有没有添加该支付网络的储蓄卡/信用卡"
创建一个支付请求,并配置各项信息
弹出授权控制器,让用户给支付授权
处理支付凭证
4.服务器处理
五、具体步骤实现
1.配置支付环境
使用XCode创建一个工程,并设置好对应的BundleID
注册并配置一个商业标示符
(1)添加一个AppID,并勾选ApplePay功能
(2)配置MerchantID
(3)为MerchantID配置证书,并下载证书安装到钥匙串
(4)检查安装到钥匙串中的证书是否有效
问题描述:有可能会出现
提示
问题原因:系统根证书/中级证书颁发机构过期
解决方案:重新下载证书,并安装,具体下载列表看下图
(5)绑定MerchantID到APPID
2.配置Xcode项目
调整系统最低部署版本(iOS8.0)
开启ApplePay功能
注意:以上步骤截图,只是关键处截图,如果在具体细节处遇到问题,欢迎关注公众号(王顺子),共同探讨。或者参照具体视频教程,链接地址,后续附上。
3.代码实现
(1)判断当前设备是否可以支付
(2)判断"Wallet有没有添加该支付网络的储蓄卡/信用卡"
(3)创建一个支付请求,并配置各项信息
(4)弹出授权控制器,让用户给支付授权
(5)处理支付凭证(token)
(6)关闭授权控制器
*支付授权的流程:
框架发送支付请求给安全模块,只有安全模块可以访问存储在设备上的标记化的卡信息。
安全模块把特定的卡和商家等支付数据加密,以保证只有苹果可以读取,然后发送给框架。框架会将这些数据发送给苹果。
苹果服务器再次加密这些支付数据,以保证只有商家可以读取。然后服务器对它进行签名,生成支付token,然后发送给设备。
框架调用相应的代理方法并传入这个token,然后你的代理方法传送token给你的服务器。
4.服务器接收到token后的一般处理流程
验证支付数据的哈希表和签名
为加密过的支付数据解码
向支付处理系统提交支付数据
向订单追踪系统提交订单
处理支付请求时,你有两个选择;你既可以利用支付平台处理支付请求,也可以自己实现支付请求处理流程。一个常用的支付平台可以完成上述大部分操作。
关于支持ApplePay支付平台的更多信息,请参考developer.apple.com/apple-pay/
六、资料附件
源码地址:'target='_blank'>https://github.com/wangshunzi/ApplePayDemo.git
视频教程:[b]http://pan.baidu.com/s/1mhzzqic提取码:gghg[/b]
[b]参看:http://bbs.520it.com/forum.php?mod=viewthread&tid=254[/b]
[b]:http://www.cnblogs.com/dashunzi/archive/2016/02/23/ApplePay.html[/b]
1.概念
ApplePay,简单来说,就是一种移动支付方式。通过TouchID/Passcode,用户可使用存储在iPhone6,6p等设备上的信用卡和借记卡支付证书来授权支付;它是苹果公司在2014苹果秋季新品发布会上发布的一种基于NFC的手机支付功能,于2014年10月20日在美国正式上线,2016年2月18日凌晨5:00,ApplePay业务在中国上线。
2.使用前提
(1).支持设备
ApplePay支持的硬件设备(表1)
线上 | 线下 | 线上&线下 |
iPadPro | AppleWatch | iPhone6 |
iPadAir2 | iPhone6Plus | |
iPadmini3 | iPhone6s | |
iPadmini4 | iPhone6sPlus |
(3).银行支持
需要将被支持银行的银行卡,添加到手机wallet应用当中
二、应用场景?
1.线下支付
>除下使用前提之外,还要求
>商家支持(要求必须有支持NFC的刷卡机)
如果发现以下标识,就代表该商家支持ApplePay
苹果公开的ApplePay商家有:
2.线上支付
>除下使用前提之外,还要求
>App支持
目前支持ApplePay支付方式的App并不多。很多公司也在集成当中,这也是写这篇博客的目的。
唯品会 | 大众点评 |
三、与微信支付以及支付宝等第三方支付平台的区别?
1.硬件方面
ApplePay:必须是iOS设备,而且是按照线上支付和线下支付区分不同的真机设备(具体参考表1)
微信、支付宝:基本跟硬件设备无关,支持大多数的只能手机
2.网络环境要求
ApplePay:线上支付需要联网,线下支付无需联网就可以支付
微信、支付宝:无论是线上还是线下支付,都需要联网使用
3.使用技术
ApplePay:线下支付使用的是基于NFC的近场通讯技术
微信、支付宝:线下支付使用的是扫码支付(条形码、二维码)
4.主要功能
ApplePay:线上支付、线下支付、部分升级后的ATM机可以取款
微信、支付宝:线上支付、线下支付、转账、理财等
5.安全性能
ApplePay:不保留银行卡信息,并且不会暴漏给外界、不分流银行存款(不需要从银行卡转钱到另外一个平台)、不能充值安全性较高
微信、支付宝:密码保护,身份验证等手段保护账户安全性相对稍差
6.支付时长
ApplePay:无论是线上支付,还是线下支付,只需要验证指纹即可支付。非常迅速
微信、支付宝:需要扫码支付,流程相对繁琐,所以时长较长
7.各自弊端
ApplePay:只适用于苹果设备,支付场景单一,无转账理财等业务
微信、支付宝:安全性较差,必须联网操作,需要充值到对应平台
四、线上支付集成步骤
1.配置支付环境
使用XCode创建一个工程,并设置好对应的BundleID
注册并配置一个商业标示符
添加一个AppID
配置MerchantID
为MerchantID配置证书,并下载证书安装到钥匙串
检查安装到钥匙串中的证书是否有效
绑定MerchantID到APPID
2.配置Xcode项目
调整系统最低部署版本(iOS8.0)
开启ApplePay功能
3.代码实现
判断当前设备是否可以支付
判断"Wallet有没有添加该支付网络的储蓄卡/信用卡"
创建一个支付请求,并配置各项信息
弹出授权控制器,让用户给支付授权
处理支付凭证
4.服务器处理
五、具体步骤实现
1.配置支付环境
使用XCode创建一个工程,并设置好对应的BundleID
注册并配置一个商业标示符
(1)添加一个AppID,并勾选ApplePay功能
(2)配置MerchantID
(3)为MerchantID配置证书,并下载证书安装到钥匙串
(4)检查安装到钥匙串中的证书是否有效
问题描述:有可能会出现
提示
问题原因:系统根证书/中级证书颁发机构过期
解决方案:重新
(5)绑定MerchantID到APPID
2.配置Xcode项目
调整系统最低部署版本(iOS8.0)
开启ApplePay功能
注意:以上步骤截图,只是关键处截图,如果在具体细节处遇到问题,欢迎关注公众号(王顺子),共同探讨。或者参照具体视频教程,链接地址,后续附上。
3.代码实现
(1)判断当前设备是否可以支付
1 2 3 4 5 |
1 2 3 4 5 6 7 8 9 10 11 12 |
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 |
1 2 3 4 5 6 7 8 |
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后的一般处理流程
验证支付数据的哈希表和签名
为加密过的支付数据解码
向支付处理系统提交支付数据
向订单追踪系统提交订单
处理支付请求时,你有两个选择;你既可以利用支付平台处理支付请求,也可以自己实现支付请求处理流程。一个常用的支付平台可以完成上述大部分操作。
关于支持ApplePay支付平台的更多信息,请参考
六、资料附件
源码地址:
视频教程:[b]http://pan.baidu.com/s/1mhzzqic提取码:gghg[/b]
[b]参看:http://bbs.520it.com/forum.php?mod=viewthread&tid=254[/b]
[b]:http://www.cnblogs.com/dashunzi/archive/2016/02/23/ApplePay.html[/b]
相关文章推荐
- app中新特性界面和主界面的逻辑关系处理
- AppCan4.0:开发者要做有价值的APP
- List<Map<String,Object>>的取值与赋值
- iOS动画应用幸运转盘
- springmvc获取路径变量也可以从类级requestMapping获取
- android关于AndroidManifest.xml详细分析
- AndroidManifest详解之Application(有图更好懂)
- android:configChanges属性
- Android中用Application类实现全局变量
- android final用法
- Android应用按Home键再从图标启动会再次经过LAUNCHER启动页
- iOS第三方文件压缩框架——Godzippa
- Android学习记录:界面设计
- android 中图片的轮播ConvenientBanner
- 安卓中无限轮播的实现
- # android studio使用遇到的问题
- android事件分发机制
- Android TV开发
- Swift之旅 1 变量、常量和声明
- iOS开发之第三方库的学习--hpple的使用