我已经在我的项目中实现了非消耗性产品的InAppPurchase。我在应用程序中提供了一个"恢复"按钮,如果用户删除应用程序并重新安装,可以恢复已经购买的产品。但这里是一个测试案例-
1)用户使用沙盒测试帐户安装应用程序并购买产品
2)从设置中注销iTunes帐户
3)用户删除应用程序并重新安装
4)单击恢复按钮,会出现一个弹出窗口,用于使用现有帐户进行登录,用户单击它并输入另一个(新的)沙盒测试人员帐户。
5)弹出窗口显示消息"Apple Id对于在美国iTunes Store中购买无效"
为什么会出现此消息?当用户单击"购买"按钮并使用相同的新测试人员帐户时,购买成功,但不会发出类似于您尚未购买产品的消息,因为用户在恢复时使用了新帐户!!
更新1-这怎么可能???!!!现在我用一个id购买产品,删除应用程序,然后重新安装应用程序。现在我点击恢复按钮,用新的测试人员id登录并恢复产品!!!!!如果我没有使用新id购买,那么它为什么要恢复产品??
我也得到了这个弹出窗口the Apple Id is invalid for purchases in US iTunes Store
。最初,当我创建一个新的沙箱测试人员帐户并使用时,但一旦卸载,再次运行构建,我得到了一个Sign In
弹出窗口。Restore
选项如果没有购买的产品,则其交易队列为空。
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
if( queue.transactions.count == 0 ) {
}else {
// Get product Id Already Restored
}
}