当应用程序关闭时取消应用内购买流程

7

当iOS应用程序即将终止时,是否有可能取消in-app-purchase?我遇到了这样一种情况:用户开始in-app-purchase过程,同时关闭了应用程序。我们能否在下面的代码中撤销InApp购买?

- (void)applicationWillTerminate:(UIApplication *)application
1个回答

5

购买过程在应用内购买编程指南中有描述。

当您的应用程序被终止时,发生的情况取决于您在购买过程中所处的位置。

  • 如果尚未提交付款请求,则您无需采取任何措施;用户不会被收费,也不会记录任何交易,您无需采取进一步的行动。

  • 如果您已经提交了付款请求,但用户尚未授权付款(通过密码或TouchID授权付款的提示由iOS在您的应用程序之外呈现),则可能不会记录任何交易,或者交易可能会以“失败”状态报告给您的交易观察器。 无论哪种方式,用户都不需要支付费用,您也不需要采取进一步的行动。

  • 如果用户已经授权交易,但交易没有被呈现给您的交易观察器,或者您的应用程序没有调用finishTransaction,则下次执行您的应用程序时将重新呈现交易给您的交易观察器。 这就是为什么重要的原因,即您的应用程序在完成应用程序逻辑中的购买(解锁功能,增加用户余额或其他)之前不要调用finishTransaction

因此,总之,没有方法取消购买过程,如果您已经正确实现了交易观察器和购买逻辑,则无需这样做。


1
这是正确的。在我的情况下,正确实现事务观察器意味着在应用程序启动时添加它,以便在购买过程中应用程序被杀死时不会错过购买确认(请参阅苹果公司的应用内购买最佳实践)。 - Josselin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接