iOS 上的信用卡订阅失败

Posted

技术标签:

【中文标题】iOS 上的信用卡订阅失败【英文标题】:Subscription fails for credit cards on iOS 【发布时间】:2021-05-25 18:17:20 【问题描述】:

在我的应用中,我提供了一个可自动更新的订阅。大约一半的用户无法成功开始订阅。这些用户都希望使用需要银行额外授权步骤的信用卡支付订阅费用,例如万事达卡 ID 检查。在他们的银行/信用卡的应用程序中批准付款后,StoreKit 报告错误并且交易失败。

我在多部运行 ios 14.4 的 iPhone 上看到过这种情况

流程: 1 用户在我的应用中点击“开始订阅”按钮 2 在代码中,将 SKPayment 添加到 SKPaymentQueue 3 订阅弹窗提示用户(Apple 提供) 4 用户使用密码/Touch ID/Face ID 进行确认 5 提示用户根据欧洲法律要求执行额外的身份验证步骤 6 显示信用卡网站并显示以下消息:“请在您的银行应用程序中批准此交易。完成后按继续按钮。” 7 用户进入银行应用程序并批准交易 8 用户从第 6 步返回网站并按下继续按钮。

我观察到的:

用户被重定向到 App Store,但没有任何反应 返回我的应用程序时,向用户显示 SKErrorDomain 错误 0。事务失败​​。在代码中,SKPaymentQueue 收到一个带有 transactionState == failed 的 SKPaymentTransaction。

我的期望:

点击信用卡网站上的继续按钮后,用户被重定向到我的应用,并且 SKPaymentQueue 收到一个带有 transactionState == 购买的 SKPaymentTransaction。

当用户停留在第6步(银行的网站),并没有在同一台设备上打开银行的APP,而是在另一台设备上确认信用卡交易时,整个流程按预期成功。对我来说,打开银行应用程序似乎会扰乱支付流程并导致交易失败。

有没有人在自动更新订阅方面遇到过类似问题并且有办法解决这个问题?

【问题讨论】:

【参考方案1】:

我最近遇到了类似的问题,在我应该激活信用卡应用程序的第 7 步时,我无法这样做,因为主页按钮不再对双击做出反应。在 safari 中单击或 3 次单击将终止整个事务,双击无法启动新应用程序。 经过与苹果支持的长期争论,他们意识到 istore pay 与几家信用卡银行存在问题。我不得不删除 CC 并使用另一种付款方式(确实成功了)

【讨论】:

以上是关于iOS 上的信用卡订阅失败的主要内容,如果未能解决你的问题,请参考以下文章

Braintree - 使用过期信用卡创建订阅不会导致错误

Paymill API:如何更新订阅的信用卡?

Google Cloud Platform 信用卡验证,擦宝上的虚拟信用卡可以验证吗

使用信用卡付款的 Paypal Express Checkout 订阅

在网站上处理信用卡订阅的最佳方式是啥?

没有贝宝账户的用户使用信用卡订阅贝宝