在iOS上通过应用内购买销售非消耗品时,会提供restoreCompletedTransactions
方法,以便您可以检索用户过去所做的所有购买,据我了解这是为用户提供快速恢复购买的方式,例如当他们购买新设备时。
据我所知,如果你要打电话给restoreCompletedTransactions
,有一个问题是当用户按下按钮时是自动还是手动调用(例如,请参阅here)。
我的问题是,是否有必要致电restoreCompletedTransactions
。如果我的应用程序只有一两件要销售/解锁的东西,那么让用户通过标准购买用户界面似乎是可以接受的,只要有一条说明解释说如果购买他们的东西将不会再次向用户收费已经购买。所以,假设用户在新设备上安装我的游戏。在他们的旧设备上,他们已经购买/解锁了X级。当他们到达新设备的X级时,它询问他们是否想要购买它(解释说如果他们以前购买它们将不会被收取两次费用),并且他们说是,他们现在在他们的新设备上有X级,他们只收取一次费用(当他们在旧设备上购买时)。
就苹果的批准而言,这是一种处理它的犹太方式吗?我可以看到,如果他们已经购买了100件单独的物品,那么给他们一次恢复所有物品会很好。但是,如果整个应用程序只有一两次解锁,那么我的非restoreCompletedTransactions
方法是否可以接受?
答案 0 :(得分:5)
根据In-App Purchase Programming Guide的“恢复交易”部分:
但是,如果您的应用程序支持必须的产品类型 restorable,你必须包含一个允许用户恢复的界面 这些购买。
我们有一个购买非耗材的应用,我们没有包含恢复按钮,而是在用户尝试再次购买时依赖默认行为。
我们首次提交应用时(2012年5月),但随后(2012年6月),当我们在不相关的区域提交更新时,这已获批准,更新被拒绝。
所以回答你的问题:不,似乎你必须使用restoreCompletedTransactions
。虽然你有时可能会侥幸成功。
答案 1 :(得分:2)
只应在用户的操作下进行恢复。您可以使用名为“恢复以前购买”的按钮。
原因是,调用还原会显示认证窗口,该窗口不被视为良好的用户体验。
希望在iOS 5中,使用iCloud解决了这个问题。