我有一个名为“专业版”的非消耗性 IAP。我给买家一些额外的积分和一些访问权限。
他们第一次购买时没有问题。它给出了分数并消除了限制。
但是当他们再次尝试购买时,它会说“您已经购买了这个项目,点击确定再次下载它”,然后它会到达 SKPaymentTransactionStatePurchased 并再次给出积分。
我尝试放置一个钥匙串(keychain),这样它只会为一个设备提供一次,但如果有人拿另一个设备并使用他们购买游戏的帐户登录,他们将再次获得积分。
有什么想法可以解决这个问题吗?我的意思是我应该改变他们拿分的地方(它在 validateReceiptForTransaction 成功后给出分数)?
谢谢你们
最佳答案
根据应用内购买指南 (https://developer.apple.com/in-app-purchase/In-App-Purchase-Guidelines.pdf),您必须为您的非消耗性 IAP 提供恢复方法。
所以,对于你的问题:
if someone takes another device and logs in with their account which they bought the game
当用户尝试登录时进行恢复。
您将能够知道用户是否购买了您的 IAP。
我认为您必须检查用户是否进行了购买,然后允许或不允许他购买您的非消耗品。
关于ios - IAP 非消耗品首次购买后可获得额外积分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15550233/