- 在我的应用中交易成功后,我的API调用正在得到失败。
- 在这种情况下,我可以将金额退还给用户吗?
您应该仅在 API 调用完成后在SKPaymentQueue
上调用 finishTransaction:
方法。 如果您不调用此方法,则 Apple 会将购买视为未完成,并将在下次您的应用启动时重新交付交易。 本质上,流程应该是:
- 通过
addPayment
将SKPayment
提交到SKPaymentQueue
- 等待队列观察器收到事务状态
SKPaymentTransactionStatePurchased
- 调用 API 以解锁/交付内容
- 调用成功后,呼叫
finishTransaction
SKPaymentQueue
- 如果您的 API 在步骤 3 中失败,请重试,直到成功
- 如果应用在挂起的事务中重新启动,则事务将重新传递,如步骤 2 中所示
请参阅 App 内购买编程指南 - 您应该在 App 启动后立即将付款观察器添加到队列中。当应用程序启动时,观察者将收到任何不完整的交易 - 因此,如果您不调用finishTransaction
,您将获得另一个机会。