【问题标题】:iOS Sandbox - Can't purchase a consumable item twiceiOS 沙盒 - 不能两次购买消耗品
【发布时间】:2013-03-02 02:43:01
【问题描述】:

问题:我正在尝试使用沙盒帐户在应用购买中进行测试,但每次尝试购买消耗品两次时,我都会收到以下错误消息:

You've already purchased this In-App Purchase but it hasn't been downloaded. 
                         [Environment: Sandbox]

只有在使用 iOS

我确定正在执行以下调用以完成第一笔交易:

[[SKPaymentQueue defaultQueue] finishTransaction:transaction]

我也尝试过拨打这个电话以排空队列,但没有运气:

[[SKPaymentQueue defaultQueue]  restoreCompletedTransactions];

我还要确保在测试 iAP 之前,我已退出 iTunes 商店。此外,我还检查了构建和版本号是否在 Xcode 中我的 Target 的 Summary 窗格中。

【问题讨论】:

  • 你100%确定它是消耗品吗...?
  • 我在 iOS 6 和 7 以及非消耗性产品上遇到了这种情况。你想好怎么解决了吗?

标签: ios objective-c app-store-connect


【解决方案1】:

我有类似的情况,如果我再次尝试购买它,我会收到此消息然后崩溃。对我来说,这似乎只是 finishTransaction 尚未完成的消息(无论出于何种原因)。根据我的日志,它授予 SKTransactionStateFailed 更新的事务,允许我重新发送 finishTransaction

然后我在我的应用程序中检查它实际上已经下载了数据/购买 BOOL/任何内容,并在他们需要再次下载时显示用户界面。后续下载似乎没有问题。

为了防止崩溃,我包括:

[[SKPaymentQueue defaultQueue] removeTransactionObserver:self];

【讨论】:

    【解决方案2】:

    问题可能是您的代码中缺少这一行

    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];

    几天前我遇到了同样的错误。这条线为我解决了这个问题。此行为应用内添加了观察者。

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      相关资源
      最近更新 更多