ios - IAP 非消耗品首次购买后可获得额外积分

标签 ios xcode storekit in-app-purchase

我有一个名为“专业版”的非消耗性 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/

相关文章:

ios - 当我的应用程序 (phonegap 3.1) 进入后台时 GPS 关闭

iphone - Objective C 中释放内存的最佳方法是什么?

ios - 无法完成付款队列中未完成的交易

cocoa - 保存 IAP 收据

ios - Xcode 10.1 - 模拟器崩溃试图在横向 iPhone 8 Plus、iPhone XR 和 iPhone XS Max 中呈现 SKStoreProductViewController

ios - 批准的 PayPal SDK 付款不会出现在沙盒仪表板上

ios - 在 iOS 上不使用 GCM 接收推送通知

ios - 在自定义 View 类中使用 UIImageView 的正确方法

ios - 在 XCode 中进行 UI 测试期间无法访问自定义 View

ios - xcode 5 UITableView 总是填满屏幕的整个长度