Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。
原文链接:
苹果开发文档
Apple Pay编程指南(2) - 环境配置
Apple Pay编程指南(3) - 创建支付请求
Apple Pay编程指南(4) - 支付授权
Apple Pay编程指南(5) - 处理付款结果
Apple Pay编程指南(6) -沙盒测试
前言
Apple Pay是一种移动支付技术,它为用户在iOS应用程序、watchOS应用程序和Safari网站上支付真实世界的商品和服务提供了一种简单而安全的方式。本编程指南讨论iOS应用程序中的Apple Pay。
网页实现请参考:Apple Pay on the Web
应用内交易的数字产品和服务请参考:About In-App Purchase
Apple Pay说明
需要使用Apple Pay的应用,需要在Xcode中打开Apple Pay功能。需要注册一个merchant ID, 需要创建一个支付证书(Payment Processing certificate), 证书是一个加密密钥,用于安全地将支付数据发送到服务器。
要发起支付,程序需要创建一个支付请求。此请求包括购买的服务和货物的小计,以及任何额外的税费、运费或折扣。将此请求传递给付款授权控制器(payment authorization view controller),该控制器将向用户显示该请求并提示用户输入所需的任何信息,例如发货或账单地址。当用户与视图控制器交互时,调用您的代理来更新请求。
一旦用户授权支付,Apple Pay就会对支付信息进行加密,防止未经授权的第三方访问。在设备上,Apple Pay将支付请求发送到Secure Element,Secure Element是用户设备上的专用芯片。Secure Element为指定的卡和商户添加支付数据,创建加密的支付令牌。然后,它将这个令牌传递给苹果的服务器,然后使用您的支付处理证书对其进行重新加密。最后,服务器将令牌传回应用程序进行处理。
支付令牌不会被访问或存储在苹果的服务器上。服务器只是使用您的证书重新加密令牌。这个过程让您的应用程序安全加密支付信息,而无需将您的支付处理证书作为应用程序的一部分分发。
在大多数情况下,您的应用程序将加密的支付令牌传递给第三方支付解决方案提供商来解密和处理支付。但是,如果您的团队拥有现有的支付基础设施,则可以在自己的服务器上解密和处理支付。
如何测试Apple Pay交易?
在Apple Pay沙箱环境中,使用测试专用卡测试您的交易。大概步骤如下:
- 在App Store Connect中创建一个测试账号,这个账号用于App Store和Apple Pay测试;
- 用这个账号在测试设备中登录iCloud ;
- 在’钱包‘(Wallet)里手动添加一张新卡。(苹果提供的测试卡传送门)
具体操作请见:Apple Pay编程指南(6) -沙盒测试