【问题标题】:iOS auto-renewable subscription purchase issueiOS 自动更新订阅购买问题
【发布时间】:2013-12-02 10:27:42
【问题描述】:

这里是问题的重现步骤:

  1. 我点击了我的应用程序中的“购买”按钮。
  2. 我输入了 Apple ID 的密码。
  3. Apple 显示确认购买与否的对话框。然后我点击“是”。
  4. Apple 显示一个对话框说我没有付款信息,需要完成它。
    (此时我在 updatedTransactions: 函数中获得了状态为 SKPaymentTransactionStateFailed 的交易)
  5. 我点击继续,然后跳转到 iTunes 应用程序并开始填写我的信用卡信息。
  6. 完成付款信息后,苹果要求我再次确认购买。
  7. 点击“确认”即可完成购买。
    (请注意,它不会自动返回到我的应用中。)

这是我的问题:

  1. 为什么当状态为 SKPaymentTransactionStatePurchased 的交易即将到来时,此流程没有调用我编写的回调函数?
  2. 最后一个,收到状态为SKPaymentTransactionStateFailed的交易是否需要完成交易?

【问题讨论】:

  • 我很好奇你第三个问题的答案。我读过一个教程,即使事务失败,调用 finishTransaction 也很重要,否则 StoreKit 不会知道你已经完成了处理,并且每次启动时都会继续将事务传递给你的应用程序!如果有人可以确认这一点...
  • 我问第三个问题的原因是,即使我完成了购买,也没有收到任何额外的交易。所以我想也许我在事务失败时完成了它,所以它不能继续发送其他事务。

标签: ios in-app-purchase


【解决方案1】:
  1. 根据我的经验,如果您在沙盒中并且被要求提供信用卡信息,则说明有问题。您可以尝试在构建/运行应用程序之前退出您的 App Store 帐户吗?这通常会为我解决。如果这不起作用,您可以尝试删除该应用程序以及在再次运行该应用程序之前注销。您是否使用通过 iTunesConnect 创建的测试用户进行沙盒购买?

  2. 根据SKPaymentTransactionObserver Protocol Reference,是的,即使是SKPaymentTransactionStateFailed,您也应该调用-finishTransaction:。我在自己的项目中这样做,没有任何不良影响。

【讨论】:

  • 第一季度,我在真实环境中使用真实账户进行购买。根据我的经验,沙盒不会询问信用卡信息。
猜你喜欢
  • 2011-10-15
  • 2016-01-20
  • 1970-01-01
  • 2018-06-01
  • 2016-01-25
  • 1970-01-01
  • 2019-05-02
  • 2013-10-18
  • 2015-07-26
相关资源
最近更新 更多