我们可以在成功交易后取回我们的钱,但 API 在应用内购买中失败


  • 在我的应用中交易成功后,我的API调用正在得到失败。
  • 在这种情况下,我可以将金额退还给用户吗?

您应该仅在 API 调用完成后在SKPaymentQueue上调用 finishTransaction: 方法。 如果您不调用此方法,则 Apple 会将购买视为未完成,并将在下次您的应用启动时重新交付交易。 本质上,流程应该是:

  1. 通过addPaymentSKPayment提交到SKPaymentQueue
  2. 等待队列观察器收到事务状态 SKPaymentTransactionStatePurchased
  3. 调用 API 以解锁/交付内容
  4. 调用成功后,呼叫finishTransaction SKPaymentQueue
  5. 如果您的 API 在步骤 3 中失败,请重试,直到成功
  6. 如果应用在挂起的事务中重新启动,则事务将重新传递,如步骤 2 中所示

请参阅 App 内购买编程指南 - 您应该在 App 启动后立即将付款观察器添加到队列中。当应用程序启动时,观察者将收到任何不完整的交易 - 因此,如果您不调用finishTransaction,您将获得另一个机会。

相关内容

最新更新