翻译自苹果官方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. PHP 对象接口

    对象接口 (interface) 使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容. 接口是通过 interface 关键字来定义的,就像定义一个标准的类 ...

  2. MacBook Pro设置外接显示器竖屏显示 切换主显示器

    切换主显示器设置 有一些使用 Mac 电脑的用户,比如笔记本用户,可能会由于屏幕太小想外接一个更大的显示器,也或是有多显示输出的需求.当 Mac 电脑上有了多个显示器以后,此时便会有主副显示区之分了. ...

  3. Windows下通过命令行 获取文件详细信息

    @echo off echo version: wmic datafile where Name="C:\\Product\\File\\Release\\1.1.1\\File.exe&q ...

  4. 003-结构型-06-组合模式(Composite)

    一.概述 将对象组合成树形结构以表示“部分一整体”的层次结构 组合模式是为了表示那些层次结构,同时部分和整体也可能是一样的结构,常见的如文件夹或者树. 通过递归手段来构造树形的对象结构,并可以通过一个 ...

  5. Spring cloud微服务安全实战-3-1 API安全 常见的安全机制

    不考虑微服务这种复杂的环境下,只是写一个简单的api的时候,如何来保证api的安全. 什么是API

  6. Hashset(不能添加相同的字符进入数组)

    参考: https://ke.qq.com/webcourse/index.html#cid=434021&term_id=100518216&taid=377652179413386 ...

  7. 123457123456#0#-----com.tym.myNewShiZi45--前拼后广--识字tym

    com.tym.myNewShiZi45--前拼后广--识字tym

  8. qt linux下自动检测U盘热插拔

    如果用U盘来更新软件,需要先删除当前的可执行文件,但是如果删除之后,复制失败的话会导致后续没有文件可以运行了.一个方法是将新的可执行文件放到另一个目录中,当copy成功后修改linux的启动文件,然后 ...

  9. java junit4-JUnit测试报 No socket available 错误

    问题描述 JUnit测试报 No socket available 错误 Eclipse进行JUnit测试时,总弹出 No socket available 窗口,导致测试不能进行. 解决方案一: 打 ...

  10. python爬虫-豆瓣电影的尝试

    一.背景介绍 1. 使用工具 Pycharm 2. 安装的第三方库 requests.BeautifulSoup 2.1 如何安装第三方库 File => Settings => Proj ...