iOS - 苹果官方Apple Pay开发文档(中文版)- Apple Pay(1)
翻译自苹果官方Apple Pay开发文档。目前版本为1.0
概览:
Apple Pay为用户从你的App里购买实际的物品和服务提供简单而安全的方法。通过Touch ID,用户可使用储存在iPhone 6和iPhone 6 Plus上的信用卡和借记卡支付证书来授权支付。这些储存证书的模型包含一个Secure Element,并将支付证书从app运行的主进程中分离出来。
Apple Pay还是 应用内支付(IAP)?
理解Apple Pay和应用内支付之间的区别是非常重要的。Apple Pay用于销售物理商品,比如食品杂货、衣服和电器,也能用于支付俱乐部的会员资格、酒店预订以及演出门票。另一方面,应用内支付只用于销售虚拟物品,如你的App里的高级内容,以及订阅数字内容。
PassKit框架为Apple Pay提供API,应用内支付的API则由StoreKit框架提供。
预备条件
为了使Apple Pay生效,除了PassKit框架之外,还需要:
1. 建立一个拥有支付模块或通道的账户(如果你没有的话)
2.从Certificates, Identifiers & Profiles注册一个商业标示符
3.提交一个证书签名需求以获得用于加密和解码支付令牌的公开或私有密钥
4. 在你的App里包含Apple Pay的支持权限
App审核指南
你的应用必须遵从App审核指南 (中文版)第29条所规定的条件。
支付提供商
你能从苹果开发者官网的Apple Pay页面找到支付提供商,它们都支持Apple Pay并且提供SDK。强烈推荐使用这些SDK,如需更多信息可联系支付提供商。
你也可以选择使用你自己的服务端方案来接收从App传来的支付请求,解码支付令牌并且与支付提供方交互。操作支付卡和借记卡的支付是很复杂的,除非你已经有了支付相关的专门支付和处理系统,否则使用支付提供商的SDK是最快捷并且可信赖的方式。
显示Apple Pay按钮
PassKit提供相应API,app可用它检测运行环境是否安全,以及设备是否已经被分配了你所支持的信用卡。
在应用程序中放置Apple Pay按钮的方式必须和Apple Pay Human Interface Guidelines一致。
显示支付页面
当你的用户选择好要买的物品或服务,并且点击了Apple Pay按钮,你就创建了一个支付请求,并要求PassKit将支付页面展示给用户。如下图 :
支付令牌
当用户通过Touch ID认证之后,你的App将从PassKit接收一个支付令牌,这个支付令牌包含了完成支付交易所需的信息。它包括一个对应本次交易的唯一密码,它应该能被你所拥有的私钥解码,或者当支付信息传输到拥有你的私钥的支付处理器服务器时。
Figure 2图示了一个典型的支付流。首先,App检查它是否能提供Apple Pay作为支付方式。在这个例子里,App需要获取配送地址的邮政编码来计算配送的运费并加到总账单里面,当用户通过了支付认证,你的App从PassKit的Secure Element里接收一个支付令牌。
最后,应用程序调用Payment Processor SDK里对应的API来将递信息到支付模块,然后处理交易。
支持的交易类型
支持Apple Pay的Payment Processor SDK需要能处理以下电子商务交易:
FAQ
哪些支付提供商支持Apple Pay?
支持Apple Pay的支付提供商列表见https://developer.apple.com/apple-pay/
Apple Pay支持哪些支付网络?
Visa、MasterCard以及American Express
Apple Pay支持哪些类型的支付卡?
支持大型发卡银行的信用卡和借记卡。
使用Apple Pay需要收取费用吗?
苹果不从Apple Pay里收取用户、商家以及开发者的费用,你的借记卡和信用卡交易取决于你使用的支付网络。
最新文章
- 关于CSS3的小知识点之2D变换
- chkdsk磁盘修复命令工具怎么用,怎样运行chkdsk工具修复?
- php + mysql 分布式事务(转)
- iOS 如何使用自定义字体
- <;spring:message>; 标签
- VS 使用Sql Server 数据库增删改查
- [转]coredump简介与coredump原因总结
- java 获取当前时间及年月日时分秒
- aptitude
- ADN中国团队參加微软的Kinect全国大赛获得三等奖
- Binder Proxy技术方案
- 《Programming Hive》读书笔记(一)Hadoop和hive环境搭建
- IE11中的F12无效的问题
- 一天搞定CSS: 浮动(float)与inline-block的区别--11
- python装饰器探究与参数的领取
- vue不通过路由直接获取url中参数的方法示例
- Nginx浅析
- Unity3D 导入Xcode 工程后。编译很慢
- 极路由通过SSH添加静态路由表之后无法跳转的问题
- Spring Cache 源码解析
热门文章
- PHP判断文件大小是MB、GB、TB...
- 提供对字符串的全角->;半角,半角->;全角转换
- 使用java 执行ping命令
- 【Mybatis】MyBatis之配置多数据源(十)
- laravel5.1框架model类查询实现
- ubuntu18.04安装golang
- JS扩展Array.prototype引发的问题及解决方法
- bootstrap-switch:记一次很坑的问题(连续相同状态的多行数据只有第一个显示按钮,其他行没有开关初始化)
- charles Windows 安装
- Linux chomd命令