【问题标题】:Cancel InApp Purchase process when app is killed应用被杀死时取消应用内购买过程
【发布时间】:2016-02-18 12:24:54
【问题描述】:
当 iOS 应用程序将要终止时,是否可以取消 in-app-purchase?我处于用户启动in-app-purchase 进程并同时终止应用程序的情况。我们可以在下面的代码中恢复 InApp 购买吗?
- (void)applicationWillTerminate:(UIApplication *)application
【问题讨论】:
标签:
ios
objective-c
in-app-purchase
【解决方案1】:
购买流程在In-App Purchasing Programming Guide中描述
当您的应用被终止时会发生什么取决于您在购买过程中所处的位置。
如果尚未提交付款请求,则无需执行任何操作;不会向用户收费,也不会记录任何交易,您无需采取任何进一步的行动。
如果您提交了支付请求,但用户未授权支付(通过密码或 TouchID 授权支付的提示由 iOS 在您的应用程序之外提供)则不会记录任何交易或交易可能以“失败”状态向您的事务观察者报告。无论哪种方式,都不会向用户收费,您也无需采取任何进一步的行动。
如果用户已授权交易,但该交易尚未呈现给您的交易观察者,或者您的应用没有调用finishTransaction,那么该交易将在下一次重新呈现给您的交易观察者您的应用程序已执行。这就是为什么在您完成应用程序逻辑中的购买(解锁功能、增加用户余额等)之前,您的应用程序不调用finishTransaction 很重要的原因
因此,总而言之,没有任何方法可以取消购买流程,如果您正确实施了交易观察器和购买逻辑,则无论如何都没有必要这样做。