翻译自苹果官方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将支付页面展示给用户。如下图 :

你的App指定支付页面的内容,但不能使用该页面控制用户的交互。你必须确定是否要给用户展示发货和账单信息、运输方式以及其他列表项目。

支付令牌

当用户通过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里收取用户、商家以及开发者的费用,你的借记卡和信用卡交易取决于你使用的支付网络。

 
 

iOS - 苹果官方Apple Pay开发文档(中文版)- Apple Pay(1)的更多相关文章

  1. iOS银联,支付宝,微信,ping++开发文档

    银联支付 银联支付目测只需两个参数 1.tn 其实就是订单号 2.mode 是测试环境还是线上环境 开发步骤 1.首先客户端浏览商品,点击下单,请求到达商户后台 2.商户后台在提交订单信息到银联后台 ...

  2. 【原创】Odoo开发文档学习之:ORM API接口(ORM API)(边Google翻译边学习)

    官方ORM API开发文档:https://www.odoo.com/documentation/10.0/reference/orm.html Recordsets(记录集) New in vers ...

  3. iOS开发-开发文档安装

    iOS开发肯定离不开开发文档,苹果有在线帮助文档,xCode其实可以下载模拟器文档和iOS8.1文档的,不过下载的速度实在不敢恭维,而且比较头疼的是不显示下载进度条的,苹果的开发文档都是放在)/应用程 ...

  4. Android官方开发文档下载

    Android官方开发文档 docs-24_r02.rar(链接:https://pan.baidu.com/s/12xC998JeUHj3ndfDXPM2ww 密码:bxyk) ADT下载.Andr ...

  5. Android官方开发文档Training系列课程中文版:目录

    Android官方开发文档Training系列课程中文版:目录   引言 在翻译了一篇安卓的官方文档之后,我觉得应该做一件事情,就是把安卓的整篇训练课程全部翻译成英文,供国内的开发者使用,尤其是入门开 ...

  6. 项目管理之 使用 appledoc 生成开发文档

    写项目时通常会遇到要求写开发文档的需求,但是就源代码来说,文档最好和源码在一起,这样更新起来更加方便和顺手.Objective-C 有一些文档管理工具,doxygen, headdoc 和 apple ...

  7. [技巧]使用Xcode集成的HeaderDoc自动生成注释和开发文档

    [技巧]使用Xcode集成的HeaderDoc自动生成注释和开发文档     Doxygen本来是一个很好的工具,可是我感觉在mac系统下,如果用doxygen最后生成的CHM文件感觉就不是那么恰当, ...

  8. 微信小程序 开发文档

    官方开发文档: 小程序公众平台 小程序开发者指南 小程序开发者文档 学习资源: 微信:官方入门教程 微信:WeUI 是一套同微信原生视觉体验一致的基础样式库 微信:微信小程序示例 视频: 学堂在线:学 ...

  9. WSTMart开发文档

    WSTMart开发文档页面   PC版   开源版 授权版   序言   WSTMart安装协议   WSTMart电商系统安装   商城前台安装操作指南   用户中心指南   商家中心操作指南   ...

随机推荐

  1. Dart中的类型转换总结:

    1.Dart中数组转换为字符串:join var a=[1,2,3,4]; var str=a.join(',');

  2. 增强篇4 CO01生产订单屏幕增强

    Step1. 结构 CO_AUFK 里增加自定义字段:ZZZ_TRIAL 然后激活结构 查看AUFK是激活状态, 字段增强完成: Step2. CMOD  使用客户增强:PPCO0012    生产订 ...

  3. 【源码解析】Flink 是如何基于事件时间生成Timestamp和Watermark

    生成Timestamp和Watermark 的三个重载方法介绍可参见上一篇博客: Flink assignAscendingTimestamps 生成水印的三个重载方法 之前想研究下Flink是怎么处 ...

  4. vs2010 出错:error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏(转)

    “LNK1123:转换到 COFF期间失败:文件无效或损坏”的解决方法 一.错误描述 之前写的程序隔段时间使用VS2010再次运行时出现如下错误: LINK fatal error LNK1123转换 ...

  5. 【ML】京东人工智能设计神器「羚珑」

    https://www.uisdc.com/linglong 文后的彩蛋说的特别好,让设计师发挥更高阶的价值.

  6. CF1197D Yet Another Subarray Problem

    思路: 使用动态规划,在经典的最大子段和解法基础上进行扩展.dp[i][j]表示以第i个数为结尾,并且长度模m等于j的所有子段的最大cost. 实现: #include <bits/stdc++ ...

  7. 虚拟机中windows下制作超级隐藏账户

    这篇博客非原创,我只是将很多大佬写的东西理解了一下写了出来. 接下来的实验最好在虚拟机进行,因为可以快照~ 制作隐藏用户可以说是两种方法但是基本操作一样,所以我们穿插着进行一种是隐藏账户,一种是影子账 ...

  8. poj1228(稳定凸包+特判最后一条边)

    题目链接:https://vjudge.net/problem/POJ-1228 题意:我是真的没看懂题意QAQ...搜了才知道.题目给了n个点,问这n个点确定的凸包是否能通过添加点来变成一个新的凸包 ...

  9. linux中matlab的中文乱码问题

    ref:http://hi.baidu.com/36470902/item/47f3b133c419d989f5e4ade1 将系统的jre拷贝到matlab去 . sudo mv $MATLAB/s ...

  10. IIS清理缓存

    服务器突然断电经常会导致IIS中web项目运行不起来问题,各种报XXXX.dll加载失败,解决方法重新发布,如果重新发布也不行可能就是IIS缓存的问题了. 清理IIS缓存方法: 进入以下文件夹吧对应的 ...