如何以编程方式将支付卡添加到苹果钱包中

Posted

技术标签:

【中文标题】如何以编程方式将支付卡添加到苹果钱包中【英文标题】:How to add payment card programmatically into apple wallet 【发布时间】:2017-03-31 10:17:30 【问题描述】:

我们尝试在我们的应用中将信用卡、借记卡详细信息添加到 Apple Pay。

以下内容来自apple doc。

重要事项 添加支付通行证需要 Apple 颁发的特殊权利。在实例化此类之前,您的应用程序必须包含此权利。有关请求此权利的更多信息,请参阅 developer.apple.com/apple-pay/ 上的发卡机构部分。 在沙盒环境中,我们尝试了 entitlement key ,但我们无法加载支付卡详细信息。

我们可以手动添加支付卡 iTunes。但是可以通过编程方式在苹果支付钱包中添加支付卡。

不能像 pkpass 文件那样模拟 Testcard(支付卡)吗? 没有可用于在沙盒环境中模拟支付卡的文档。

https://developer.apple.com/reference/passkit/pkaddpaymentpassviewcontroller?language=objc

提前致谢。

【问题讨论】:

【参考方案1】:

如果我对您的理解正确,您已经拥有授权密钥(并且我假设您已获得 Apple 的特别许可)。我还假设您使用PKAddPaymentPassViewController 进行配置过程。如果所有这些都是正确的,那么您还需要记住一些事情。首先,您无法使用模拟数据甚至测试环境对此进行测试。您必须使用可通过 Apple Pay 与发卡机构确认的真实支付卡的生产数据。此外,该应用程序必须与 TestFlight 一起分发才能运行,因此您不能直接从 Xcode 运行。

【讨论】:

addPaymentPassViewController:generateRequestWithCertificateChain:nonce:nonceSignature:completionHandler 方法的实现应该是什么: 在此委托方法中,您应该获取该方法提供的证书、nonce 和 nonceSignature,并可能将其传递给您的后端。然后,您的后端将获取此数据并将其发送到信用卡公司(例如 Visa)并返回数据,使您能够构造一个 PKAddPaymentPassRequest,您将把它传递给此方法的 completionHandler。当您获得使用信用卡配置权利的特殊许可时,Apple 提供的文档中对此进行了全部描述。 谢谢帕耶维奇。是的,我在文档中阅读了它。我正在寻找委托方法的快速代码,因为我实际上无法映射到代码中。 @GauravBorole 我可以请您链接与添加付款通行证实施相关的官方苹果文档 @msamardzic 它不是公开的 AFAIK。它仅由 Apple 提供给获准提供支付通行证的组织(通常是银行和发卡机构),并且受 NDA 保护。因此,您需要联系苹果以获得批准(如果您符合条件),然后他们会将文件发送给您。【参考方案2】:

启用支付卡的应用内配置

使用此权利启用应用内支付配置 牌。此权利允许您初始化和呈现 PKAddPaymentPassViewController 对象。

在授权文件中,添加布尔值为YEScom.apple.developer.payment-pass-provisioning 键。您需要 Apple 的特别许可才能提交启用此密钥的应用程序。如需更多信息,请联系 apple-pay-inquiries@apple.com。

https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/EntitlementKeyReference/ApplePayandPassKitEntitlements/ApplePayandPassKitEntitlements.html

【讨论】:

以上是关于如何以编程方式将支付卡添加到苹果钱包中的主要内容,如果未能解决你的问题,请参考以下文章

苹果手机怎样隐藏支付宝

苹果内支付(iOS IAP)的流程与常用攻击方式

如何以编程方式将银行借记卡或信用卡添加到 Google 电子钱包中?

通过 NFC(钱包支付)将 Apple Pay 与 Android 应用程序集成

点外卖也可用数字人民币,国内零售支付产业体系全面升级

浅析hybrid模式下地支付宝钱包和微信