Apple Pay(转)
Apple Pay 是在 iOS 8 中第一次被介绍,它可以为你的应用中的实体商品和服务,提供简单、安全、私密的支付方式。它使得用户支付起来非常简便,只需按一下指纹就可以授权进行交易。
Apple Pay 只能在特定的设备上使用,目前为止,这些设备包括 iPhone 6, iPhone 6+, iPad Air 2, iPad mini 3. 这是因为 Apple Pay 需要特定的硬件芯片来支持,这个硬件叫做 Secure Element (简称SE,安全元件),他可以用来存储和加解密信息。
假如说你的应用里有需要购买才能解锁的某些特性的话(比如去广告),你不应该使用 Apple Pay 这种支付方式。 Apple Pay 是用来解决购买实体商品和服务的,例如,聚乐部会员,酒店预订,订票等。
为什么使用 Apple Pay
Apple Pay 大大简化了开发者的工作。你无需自己来管理卡号,也不需要用户去注册银行卡。你可以移除部分业务模块,甚至不需要用户模块了。购买和账单信息回自动交由 Apple Pay token 来处理。这意味着简化了购买流程,可以带来更高的转化率。
在 WWDC session 702 , Apple Pay Within Apps 中, Nick Shearer 介绍了部分 Apple Pay 在美国的不同商业交易中超高转化率的统计情况。
Stubhub 发现使用 Apple Pay 的客户的转换率超过传统客户 20%。
OpenTable 发现采用了 Apple Pay 之后呈现了 50%的增长。
Staples 发现采用了 Apply Pay 后,实现了109%的转换率增长。
创建一个简单的商店应用
我们将创建一个包含商店的应用,演示 Apple Pay 是如何处理我们的交易的。这个应用仅有一个商品,但已经足够展示如何开始使用 Apple Pay 了。
这是我们将要创建的最终页面。你可以看,当用户点击“购买”按钮时,弹出了一个 Apple Pay 的表单。
Enabling Apple Pay
在我们写代码之前,请先确保应用有使用 Apple Pay 的能力。当创建玩空白项目后,打开项目设置,找到 capabilities 这个 tab。
你应该能够在 capabilities 里看到 Apple Pay 部分,把状态设置为开启。这时候会让你选择一个开发团队的授权账号,希望接下来, Xcode 能够把设置工作都帮你做好。
我们需要添加一个 Merchant ID,让 Apple 知道如何去为当前付款信息编码。点击在 Merchant ID 位置出现的添加按钮,填写你自己的唯一 Merchant ID。在这个例子中,我们使用的是 merchant.com.shinobistore.appleplay。
就这些,你可以看到 Apple Pay 已经设置为可用了,你应该可以在应用中使用它了。
使用 Apple Pay
现在,我们已经设置好了配置文件,我们要开始创建 UI 了,以便让用户可以购买产品和支付。打开 storyboard 添加一些UI(如下图),做成产品出售页面。
我们刚才创建的 UI 是一个图片,带有标题、价格和描述的文本。这不是这个 demo 的重点。我们需要添加一个按钮,我们把它添到视图的下面。我们要添加的按钮是一个 PKPaymentButton, 这个在 iOS 8.3 时引入。这个按钮是本地化的,能够提供标准的样式。因此,我们强力推荐使用这个按钮来启动 Apple Pay 的支付页面。
这个按钮有三个样式
1
|
White; WhiteOutLine; Black |
同样具有两个不同类型
1
|
Plain; Buy |
有几种不同的方法可以设置按钮的样式。不幸的是,目前还不支持在 Interface Builder 中设置。所以打开 ViewController.swift ,覆盖 viewDidLoad 方法。
这就是我们全部需要做的。它可以自适应,本质上(这个 demo)我们在意的就是这个按钮。 当我们点击了按钮后,在 buyNowButtonTapped 方法里,我们启动购买进程。
当UI 创建好后,现在我们必须去处理购买流程。首先,我们需要理解 Apple Pay 的一些类的概念。
PKPaymentSummaryItem
这个 Object 是你的 Apple Pay 交易清单上的一条。它可以是商品的,也可以是税,或者运费。
PKPaymentRequest
PKPaymentRequest 合并你所有想要用户看到的信息。诸如 merchant identifier, country code 和 currency code。
PKPaymentAuthorisationViewController
PKPaymentAuthorisationViewController 让用户及时授权 PKPaymentRequest,并且选择投递地址和支付的卡。
PKPayment
PKPayment包括需要处理的交易的信息,并且包含需要用户确认的消息。
所有这些类都包含在 PassKit(因此以 PK 开头) 之内,所以你需要在用到 Apple Pay 的地方,引入这个框架。
设置 Payment
第一步要创建一个 PKPaymentRequest, 我们讲在下面详述
首先我们创建一个可以接受的支付网络的数组,它确定了那些类型的卡,是我们可以使用的。
然后我们要检测,当前设备是否可以处理这些类型的交易。canMakePaymentsUsingNetworks 是PKPaymentAuthorizationViewController 中标准的检测设备是否有交易处理能力的方法。
如果设备具备处理交易的能力,上面的代码,开始自动创建一个交易的请求。注释信息表明了每行代码的作用。
然后,如上面的代码,设置你想要在 Apple Pay 表单要显示的商品信息。他们会在接下来的 paymentSummaryItems 中用到。
这个 API 有意思的一点是,在数组最后一个,是用户总共需要支付多少钱。它在表单的最后,会特别表示出来。在这个例子中,是总价。如果,你希望现实更多的条目,你需要手动计算并且在列表最后,添加一个PKPaymentSummaryItem。
最后,给请求设置一个 PKPaymentAuthorizationViewController,设置代理,然后展示给用户。
现在我们需要确认,是否声明了 PKPaymentAuthorizationViewController 的代理方法。我们需要声明这些方法,以确认是否生成了交易,并在得到授权或完成后,响应相关事件。
在 paymentAuthorizationViewController:didAuthorizePayment 方法中,我们要使用我们的 provider 处理交易数据,并且返回状态给应用。返回的 PKPayment 拥有一个 PKPaymentToken 的属性,我们需要发送给支付的 provider.他是负责编码和私钥加密的。
在 paymentAuthorizationViewControllerDidFinish 方法中,我们简单的关闭掉我们的 viewController。
这就是全部了。显然,在现实世界里,你可能还需要把支付的 token 发送给诸如 Stripe,但这个超出本教程的范围。我们还添加了一个 controller 来显示收据。在这个例子中,仅显示支付 token 的 transactionIdentifier。他是一个被格式化好的的全球唯一的一个字符串,可以用来做收据的验证。
延伸阅读
更多关于 Apple Pay 的信息,我推荐观看 WWDC 2015 的 session 702, Apple Pay Within Apps. 这个视频挺长的,但是如果你对 Apple Pay 感兴趣的话,绝对值得观看。这个 session 中间有一段,讲了 Apple Pay 是如何改进交易处理的用户体验的。
另外,在苹果开发者网站上,还有一个文档 guide to Apple Pay。如果你想要在应用中集成 Apple Pay 的话,它是非常值得一读的。
最后,别忘了,如果你想观看我们在 Demo 中创建的项目的话,可以在 Github 上找到他。
Apple Pay(转)的更多相关文章
- Apple Pay 初探
Apple Pay 一.概述 1.支付方式:Touch ID/ Passcode 2.设备要求:iPhone6以上(iphone:线上/线下 ipad:线上 watch:线下) 3.系统要求:iOS8 ...
- 【转】iOS开发 -- Apple Pay
技术博客原地址:http://www.cnblogs.com/dashunzi/p/ApplePay.html#top 原技术博客中有源码和视频,有感兴趣的朋友可以研究一下! 一.什么是Apple P ...
- Apple Pay的快速实现
一.在Apple开发者中心配置 AppleID 和 Merchant IDs 二.配置好证书后在Xcode中开启Apple Pay 三.代码实现 3.1 判断是否支持Apple Pay,如果支持又将支 ...
- 开发apple pay碰到的问题总结
本来想简单总结一下Apple Pay 开发过程中的几个问题, 结果被下面这篇文章全碰上了, 干脆全文转载, 作者对相关资源整理得比较详细, 比较有参考价值 总的来说, 我们做过 APNs 推送的话, ...
- iOS Apple Pay
iOS 苹果支付 需要证书支持支付功能 targets 打开支付功能按钮 //ApplePay#import <PassKit/PassKit.h> ...
- Apple Pay
Apple Pay运行环境:iPhone6以上设备,操作系统最低iOS9.0以上,部分信息设置需要iOS9.2以上.目前还不支持企业证书添加. 环境搭建好后可以在模拟器上面运行,xcode7.2.1+ ...
- iOS开发 Apple Pay
一.什么是Apple Pay? 1. 概念 Apple Pay,简单来说, 就是一种移动支付方式.通过Touch ID/ Passcode,用户可使用存储在iPhone 6, 6p等设备上的信用卡和借 ...
- 集成 Apple Pay
作者感言 在中秋过后终于把国内的三大支付平台SDK集成都搞定了, 现在我们终于可以来研究Apple自家的支付Apple Pay最后:如果你有更好的建议或者对这篇文章有不满的地方, 请联系我, 我会参考 ...
- Apple Pay强势来袭,开发者应做的事情
"iOS8.1就已经有这个功能了,只是木有现在这么的火,现在的趋势是要火的节奏,因此很多电商平台B2B,P2P,C2C,X2X都有可能需要这个屌丝的付款功能了,在此简单的研究一下." ...
随机推荐
- OP和DBA相关的一些有用资源
最近国外blog上看到的一片资源分享博文,精而全,于是转帖分享 Must-Read Books List First of all, I would like to share a list of b ...
- HTML5 新特性总结
1.使用autocomplete 自动完成必须给input 加上name. 2.SVG图形代码 复制https://developer.mozilla.org/zh-CN/docs/Web/SVG/E ...
- JS设计模式1-单例模式
单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如全局缓存,window对象.单例模式在js开发中单例模式的用途非常广泛,比如页面中有一个登录浮窗,无论单击多少次登录窗口,这个窗口只会创建一 ...
- 一起Polyfill系列:让Date识别ISO 8601日期时间格式
一.什么是ISO 8601日期时间格式 ISO 8601是国际标准化组织制定的日期时间表示规范,全称是<数据存储和交换形式·信息交换·日期和时间的表示方法>. 示例: 1. 2014-12 ...
- 【转】Bloom Filter布隆过滤器的概念和原理
转自:http://blog.csdn.net/jiaomeng/article/details/1495500 之前看数学之美丽,里面有提到布隆过滤器的过滤垃圾邮件,感觉到何其的牛,竟然有这么高效的 ...
- sprint3(第十天)
因为近期准备四六级考试还有准备期末的作业,任务比较多,所以进度落下了很多,没有完成预期的计划. 燃尽图
- jquery选择器(原创)<二>
jquery选择器,选择接着学: 前面学习了基本选择器中的CSS选择器,现在学层级选择器: 1.子元素选择器 子元素选择器,用于在给定的父元素下,查找这个父元素下面的所有的子元素,语法格式,如下: $ ...
- 在C#后端处理一些结果然传给前端Javascript或是jQuery
在C#后端处理一些结果然传给前端Javascript或是jQuery,以前Insus.NET有做过一个例子<把CS值传给JS使用 >http://www.cnblogs.com/insus ...
- Python基础:序列(字符串)
一.概述 字符串 类似于C中的字符数组(功能上更像C++中的string),它是由一个个 字符 组成的序列.与C/C++不同的是,Python中没有 字符 这个类型,而是用 长度为1的字符串 来表示字 ...
- WPF画图简便技巧
下面这个就是:起点在(0,0)开始的正方形.(用绿色填充).此方法比一条一条的写方便多了! <Path Fill="LawnGreen" Data="M 0 0 L ...