应用程序被杀死时取消应用程序内购买过程

Cancel InApp Purchase process when app is killed

当 iOS 应用程序即将终止时,是否可以取消 in-app-purchase?我处于用户启动 in-app-purchase 进程并同时终止应用程序的情况。我们可以在下面的代码中恢复 InApp 购买吗?

- (void)applicationWillTerminate:(UIApplication *)application

In-App Purchasing Programming Guide

中描述了购买过程

当你的应用程序被杀死时会发生什么取决于你在购买过程中的位置。

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

  • 如果您已提交付款请求但用户尚未授权付款(通过密码或 TouchID 授权付款的提示由 iOS 在您的应用程序外部显示)或者否交易将被记录,或者交易可能会以 "failed" 状态报告给您的交易观察员。无论哪种方式,用户都不会被收费,您也不需要采取任何进一步的行动。

  • 如果用户已授权交易但交易尚未提交给您的交易观察者,或者您的应用程序尚未调用 finishTransaction 那么交易将被重新提交给下次执行您的应用程序时,您的交易观察员。这就是为什么在您的应用程序逻辑中完成购买(解锁功能、增加用户余额或其他)之前,您的应用程序不调用 finishTransaction 很重要

因此,总而言之,没有取消购买流程的方法,如果您已正确实施交易观察器和购买逻辑,则无论如何都没有必要。