Xamarin.iOS 中的 Apple Pay

本指南探讨如何设置 Xamarin.iOS 环境,以便与 Apple Pay 配合使用,通过应用支付实物产品(例如食品、娱乐和会员)费用。 其中包括有关所需标识符、证书和权利的信息。

Apple Pay 与 iOS 8 一起推出,使用户能够通过 iOS 设备支付食品、娱乐和会员等实物商品。 它适用于 iPhone 6 和 iPhone 6 Plus,也可以与 Apple Watch 配对进行店内购买。 在 iPhone 上使用时,它使用 Touch ID 来确认和授权用户信用卡或借记卡交易。

要求

Apple Pay 仅在 iOS 8 及更高版本中可用,因此至少需要 Xcode 6。

将 Apple Pay 集成到应用中还需要满足以下条件:

  • 支付处理器平台
  • 商户标识符
  • Apple Pay 证书
  • Apple Pay 权利

本文档将更详细地讨论这些项。

Apple Pay 与 IAP 之间的差别

Apple Pay 和应用内购买 (IAP) 之间的主要差别在于它们销售的产品。 实物产品通过 Apple Pay 销售;食物、住宿和体育娱乐(例如电影票)都是此类产品的示例。 相比之下,IAP 则是销售虚拟产品,例如优质或额外内容以及订阅 - 想想流式处理服务的额外几个月服务或游戏中的额外生命

使用的框架也是一个关键差别;PassKit 用于 Apple Pay,而 StoreKit 则为 IAP 提供框架 API。

对于 Apple Pay,Apple 声明“不会向使用 Apple Pay 进行付款的用户、商户或开发人员收取费用”。 相比之下,IAP 每笔交易收取 30% 的费用。 此外,在使用 Apple Pay 时,交易根本不经过 Apple,而是通过支付平台处理。

使用支付处理器平台

Apple Pay 的基本功能之一是支付处理。 虽然你可以自己执行此操作,但这需要大量的密码学知识 - Apple 的付款处理指南中有详细说明。 另一方面,支付处理平台会为你处理这些操作,让你可以专注于生成应用。

两个选项包括:

Apple Pay 预配

将应用配置为使用 Apple Pay 需要在 Apple 开发人员门户和应用内进行设置。 若要成功为应用预配 Apple Pay,请遵循以下几个步骤:

  1. 创建商户 ID:
    • 请按照此处的步骤操作
  2. 创建具有 Apply Pay 功能的应用 ID 并向其添加商户:
    • 请按照此处的步骤操作
  3. 生成商户 ID 的证书:
    • 请按照此处的步骤操作
  4. 使用新建的应用 ID 生成预配配置文件:
    • 请按照此处的步骤操作
  5. 添加 Apple Pay 权利:
    • 选择此处详细说明的 Apple pay 权利,或从此处手动将键/值对添加到文件中

使用 Apple Pay

Apple 在 iOS 10 中对 Apple Pay 进行了多项增强,允许用户通过网站以及通过与 Siri 和地图交互进行安全支付。

iOS 10 添加了几个新的 API,可与 iOS 和 watchOS 配合使用,以支持动态支付网络和新的沙盒测试环境。

Apple Pay 网站集成

作为 iOS 10 的新增功能,开发人员可以使用 ApplePay JS 将 Apple Pay 直接整合到他们的网站中。 在 iOS 或 macOS 中使用 Safari 浏览网站的用户可以通过在 iPhone 或 Apple Watch 上验证交易来使用 Apple Pay 进行付款。 有关详细信息,请参阅 Apple 的 ApplePay JP 框架参考

PassKit 框架增强功能

在 iOS 10 中,PassKit 框架已得到扩展,可支持 UIKit 之外的 Apple Pay,并允许发卡机构在其应用内出示其自己的卡。

支持 UIKit 外部的 Apple Pay

通过使用 PKPaymentAuthorizationControllerPKPaymentAuthorixationControllerDelegate,应用可以支持 PKPaymentAuthorizationViewController 提供的相同功能,而无需使用 UIKit。 虽然这个新 API 是在 Apple Watch 上支持 Apple Pay(以及在特定意向中这样做)所必需的,但在其他情况下(例如在现有应用中),它是可选的。 不过,Apple 建议你尽快转向新的 API,以便通过单一代码库为开发人员的所有应用提供广泛的 Apple Pay 支持。 有关意向和 Siri 集成的详细信息,请参阅我们的 SiriKit 简介文档。

在应用内显示发卡机构卡

在 iOS 10 中,PassKit 框架添加了新功能,允许发卡机构在其自己的应用中显示卡。 开发人员可以将 PKPaymentButtonTypeInStore UIButton 添加到应用的用户界面,该界面会显示卡的 Apple Pay 按钮。

PKPassLibrary 类的 PresentPaymentPass 方法也可用于以编程方式显示该卡。

新的付款网络支持

应用可以在新的付款网络可用时自动支持该网络,而无需开发人员修改、重新编译应用并将其重新提交到 App Store,这是 iOS 10 中的新增功能。

PKPaymentNetwork 类的新 AvailableNetworks 方法允许应用在运行时发现在用户的设备上可用的网络。 此外,SupportedNetworks 属性已进行扩展,可以将付款服务提供商的名称作为参数。 使用这些方法,应用可以自动支持付款服务提供商支持的任何网络。

有关详细信息,请参阅我们的 Apple Pay 配置和 Apple 的 Apple Pay 指南

新的测试环境

在 iOS 10 中,Apple 引入了新的测试环境,允许开发人员直接在 iOS 设备上预配测试付款卡。 然后,这个新的测试环境会将加密的测试付款数据返回到应用。

若要启用这个新的测试环境,请执行以下操作:

  1. 在 iTunes Connect 中创建一个新的测试 iCloud 帐户。
  2. 使用新的测试帐户登录 iOS 设备。
  3. 设置测试应用所需的区域。
  4. 使用 Apple Pay 指南中的测试付款卡之一进行付款。

重要

通过切换 iCloud 帐户,可以将设备自动切换到新的测试环境。 不过,Apple 仍然要求开发人员在将应用提交到 iTunes App Store 之前必须在生产环境中使用真实卡对其进行测试。

总结

在本文中,我们探讨了在应用中使用 Apple Pay 所需的不同项。 我们了解了如何创建商户 ID,以及如何在需要手动修改的 Entitlements.plist 中使用它