iOS App集成Apple Pay教程

苹果在本周一发布了iOS 8.1版本,并正式开放了Apple Pay支付系统。Apple Pay是一个基于NFC的支付系统,不久将被数以万计的线下零售商店予以支持。即便这项科技并不是彻底的突破性进展,但它足以推动许多公司和零售商来支持这种支付方式,并成为苹果又一项成功的投资。

Apple Pay还给开发者带来了处理支付的新渠道,用户将期望在应用中使用它,因为它将验证和交易极端简化,仅需手指轻轻一触即可完成,如果应用里面有涉及到交易,开发者很有必要集成Apple Pay。那么如何将Apple Pay功能集成到你的应用里呢?

在App里设置Apple Pay

Xcode 6.1提供了非常方便的界面来设置Apple Pay。第一步先修改target为iOS 8.1,然后在项目Capabilities里将Apple Pay设置为on,这将自动导入需要的库文件,然后添加一个权限文件并设置,最后修改或创建你的App ID。

你可能会注意到上面没有有效的Merchant ID,我们需要创建一个,访问苹果iOS 开发者中心的位于Identifiers > Merchant ID的页面

然后随着流程指引,创建一个Merchant ID并注册它。

现在,我们需要给Merchant ID添加一个证书签名请求(Certificate Signing Request),以便加密支付令牌来保证其安全性。为达到这个目的,导航至你的Merchant ID,并点击Edit按钮来修改它。

现在,你需要创建一个证书。点击下面的Create Certificate按钮,并跟随苹果的流程指引完成创建。

现在Merchant ID设置好了,你可以回到Xcode并刷新Merchant ID区块,如果一切正常,你应当看到刚创建的ID出现在列表上。将它选中,然后可以进入下一部分。

编写代码

我们在Github上提供了一个集成Apple Pay的示例项目:cjbeauchamp/ApplePayDemo ,权限文件和App设置文件已经剥离出去了,可以放心将它添加到你自己的项目里。下面我们将讨论一些开发中的要点。

设置项目

Apple Pay使用了PassKit框架,所以你需要在适当的文件里导入头文件:


1

#import <passkit
passkit.h=""></passkit>

你还需要接收Apple Pay处理信息的回调,所以确保将委托添加到接收类上:


1

2

@interface ViewController : UIViewController

<pkpaymentauthorizationviewcontrollerdelegate></pkpaymentauthorizationviewcontrollerdelegate>

创建支付请求

首先你需要确认设备是否支持Apple Pay支付,确认的代码是:


1

2

3

if([PKPaymentAuthorizationViewController canMakePayments]) { 

    ... 

}

在上面的代码块里,你能使用PKPayment类来创建支付请求。下面是相应的代码,你需要将其中一些信息修改成自己的,比如merchantIdentifier需要与你之前创建的Merchant ID相匹配。


1

2

3

4

5

6

PKPaymentRequest *request = [[PKPaymentRequest alloc] init];

request.countryCode = @"US";

request.currencyCode = @"USD";

request.supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa];

request.merchantCapabilities = PKMerchantCapabilityEMV;

request.merchantIdentifier = @"merchant.com.myMerchantID";

添加物品到支付页

你可以使用PKPaymentSummaryItem来创建物品并显示,这个对象描述了一个物品和它的价格,数组最后的对象必须是总价格。


1

2

3

4

5

6

7

PKPaymentSummaryItem *widget1 = [PKPaymentSummaryItem summaryItemWithLabel:@"Widget 1" amount:[NSDecimalNumber decimalNumberWithString:@"0.99"]];

 

PKPaymentSummaryItem *widget2 = [PKPaymentSummaryItem summaryItemWithLabel:@"Widget 2" amount:[NSDecimalNumber decimalNumberWithString:@"1.00"]];

 

PKPaymentSummaryItem *total = [PKPaymentSummaryItem summaryItemWithLabel:@"Grand Total" amount:[NSDecimalNumber decimalNumberWithString:@"1.99"]];

 

request.paymentSummaryItems = @[widget1, widget2, total];

显示认证视图

最后,显示由PassKit框架提供的view controller,接下来它将自动处理认证。


1

2

3

PKPaymentAuthorizationViewController *paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];

paymentPane.delegate = self;

[self presentViewController:paymentPane animated:TRUE completion:nil];

实现委托方法

被请求的委托方法是被认证成功和认证完成两个事件调用的。是否解除view controller,以及让用户知道认证是否成功都取决于你。方法的签名如下:


1

2

- (void)paymentAuthorizationViewController:didAuthorizePayment:completion:

- (void)paymentAuthorizationViewControllerDidFinish:

支付验证

在Apple Pay验证了支付之后,仍然需要开发者来完成交易,这可以用didAuthorizePayment委托方法来完成,它需要你连接服务器并上传支付令牌和 其他信息,以完成整个支付流程。在服务器呼叫结束后,你需要调用completion方法,摒弃提供success或failure标记的参数。你可以在 示例代码里找到具体实现。

监控并优化交易

Apple Pay是现有的结账流程非常棒的解决方案,在应用里使用它无疑会让用户们高兴。尽管Apple Pay让支付流程极端简化,仍然有许多变动地方,他们的表现将直接与app的营收挂钩。

交易监控

Crittercism公司的新Transaction Management是一种很棒的方法,用来监控各种交易确保它们工作正常。如果一个API端末或服务执行缓慢,或者如果用户决定取消交易,或者你的应用崩溃了,你需要知道这些信息才能更好的优化它们。你可以到Crittercism官方网站了解更多信息。

总结

希望这个入门教程让你更好的理解和使用Apple Pay。别忘了阅读苹果的指南和文档来了解如何与供应商集成,以及用户界面的指导规范。你可以在苹果Apple Pay的官网上找到它们。

时间: 2024-10-20 17:38:39

iOS App集成Apple Pay教程的相关文章

Apple Pay使用常见问题汇总及解决教程

pple Pay是苹果公司推出的一种基于NFC近场技术,主打简便.安全.私密的移动支付方式.2016年2月18日Apple  Pay正式进入中国,在支持的iOS设备中,用户只需通过手指轻触Touch  ID就可以利用存储在设备中的"卡包"进行支付.本文主要详细罗列一下Apple Pay使用中的常见问题汇总.   ================Apple Pay使用问题汇总================   一.什么设备能够使用Apple Pay?国行非国行是否有影响?   目前能够

Apple Pay即将华丽到来,时刻准备升级iOS

也许你还没听说过Apple Pay,甚至怀疑它的安全性,尽管它的竞争对手也不少,但一句话就能打消你对它的顾虑:它是和中国银联合作的.所以未来不管你用不用,Apple Pay都已经华丽丽的将要来到了,而作为一个普通用户,如果你打算尝鲜,现在需要准备点什么呢? 时刻准备升级iOS 我们知道Apple Pay是需要iOS系统支持的,而对于中国区的苹果系统来说,目前最新的8.2版本还不支持,由于近期苹果官方正在测试8.3版系统,所以估计未来很快就会发布上线了,尽管不能确定这个版本中是否支持Apple P

Apple Pay编程指导

1.About Apple Pay Apple Pay是一种移动支付技术,让使用者把它们对真实的物品和服务的支付信息以一种方便和安全的方式给你. 对于在app中给出的数字物品和服务,可查看In-App Purchase Programming Guide. Working with Apple Pay 使用Apple Pay功能的Apps需要在Xcode 中开启Apple Pay capabilities.也需要注册一个商家标识并设置密钥(用来加密发送支付数据给服务器). 初始化支付时,app创

苹果IOS系统Apple Pay添加银行卡/信用卡及支付教程

Apple Pay到底是什么 首先有一点,大家必须搞清楚,ApplePay相对支付宝和微信支付来说,完全是两回事. 你并不能往ApplePay里面充值,说的更直白一点,它就是一个"卡包",它的功能就是把实体的银行卡虚拟到你的手机里. 所以,ApplePay也不会涉及自有资金的管理和清算,不会参与买卖双方交易的任何环节. Apple Pay设备支持要求 因为Apple Pay需要支持NFC功能,所以目前支持iPhone 6.iPhone 6 Plus.iPhone 6s.iPhone 6

Apple Pay终于要随着iOS 8.1来了

摘要: 今年9月的苹果新品发布会上,苹果正式推出了自己的近场支付体系Apple Pay,用一个 NFC 模块+一个安全芯片+Touch ID 的方式,连接了用户与商家,拓展了支付与应用场景.据Bank Innovation的 今年9月的苹果新品发布会上,苹果正式推出了自己的近场支付体系Apple Pay,用一个 NFC 模块+一个安全芯片+Touch ID 的方式,连接了用户与商家,拓展了支付与应用场景.据Bank Innovation的消息,苹果公司新推出的移动支付服务Apple Pay可能在

Apple Pay接入详细教程

Apple Pay运行环境:iPhone6以上设备,操作系统最低iOS9.0以上,部分信息设置需要iOS9.2以上.目前还不支持企业证书添加. 环境搭建好后可以在模拟器上面运行,xcode7.2.1+iPhone6SP9.2系统下,系统会绑定几种虚拟的银行卡,和几个联系人,方便调试,支付也不会发生真实的付款,真的很方便. 准备工作 在接入Apple Pay之前,首先要申请MerchantID及对应证书.(请移步我写的申请MerchantID及对应证书详细图文教程) 工程设置 bundleID设置

ipad版apple pay绑定银行卡的教程

ipad版apple pay怎么绑定银行卡? 我们只要进入到"Wallet与Apple Pay"内申请和激活Apple Pay,流程与iPhone加载一致. 好了现在在ipad界面中我们点击"设置"找到界面中的"Wallet和Apple Pay" 然后找到下面的"添加信用卡或借记卡"效果如下所示. 进入Apple Pay界面中我们只要根据提示然后填写自己的银联信用卡信息,包括姓名.卡号.有效期.CVV2.其中,卡号可通过手动输

Apple Pay现身iOS 8.1测试版

Apple Pay出现在Passbook应用中新浪手机讯 10月9日上午消息,苹果公司本周已经向开发者推送了iOS 8.1测试版固件,而在最近的固件版本中Apple Pay已经出现在了Passbook应用之中.Apple Pay在9月新品发布会时成为最受关注点之一,不过在iPhone 6上市之后也难觅踪影.而在近日推出的iOS 8.1测试版固件中,开发者已经发现Apple Pay出现在了Passbook应用中.可以看到Passbook应用界面一分为二,增加了"借记卡/信用卡"选项,而提

传Apple Pay将跟随iOS 8.1于10月20日启用

10月2日,据美国多家媒体报道,10月20日,苹果极有可能对外发布iOS 8.1系统更新,而当天苹果支付(Apple Pay)也将会正式推出.美国金融行业专业媒体银行创新(BankInnovation)引述多位接近苹果的消息人士称,10月20日,苹果将会对外发行iOS 8.1,这一系统中将包括苹果支付产品,iPhone 6和iPhone 6 Plus用户,将可以使用手机进行支付.据关注苹果新闻的网站9to5Mac此前报道,在iOS 8发布之后,苹果已经加快了移动操作系统的开发节奏.过去,苹果一般