我们正在开发适用于iOS平台的在线移动多人游戏。
在我们的游戏中,玩家可以购买并激活“PRO”模式以获得额外的好处。
因此,我们创建了一种“非消费”类型的应用内购买。因为,“PRO”模式是一种一次性购买,永远激活的项目。我们将激活它并在服务器上存储必要的数据,但我们还需要有关“谁刚从iTunes游戏商店购买此项目”的信息。
我的问题是:我们如何同步用户的appleid和服务器游戏帐户? appleid是一个我们无法从SDK中获取的私有变量。
我们也无法使用 identifierForVendor ,因为有人可以在同一设备上使用不同的帐户登录和注销。
这种情况有什么解决方案吗?或者您建议我将此项目更改为“耗材”类型并处理服务器端的所有工作? (我想这种情况可能会在将来造成某种麻烦)
编辑:如何检测到:有人删除应用程序,重新安装,使用不同的帐户登录游戏服务器并恢复此帐户的PRO模式(他可以很容易地做这个可能很多他玩游戏的朋友)我我想知道,我怎么能匹配appleuser< ==> gameuser 在这种情况下?答案 0 :(得分:0)
您可以为非消耗品实施“restoreCompletedTransactions”方法。
它已经准备好使用Apple的机制,允许用户恢复购买 - 你只需提供一个按钮和实现。
同时检查:https://developer.apple.com/in-app-purchase/In-App-Purchase-Guidelines.pdf
答案 1 :(得分:0)
我找到了解决方案
在服务器产品型号部分进行了解释。
游戏服务器和itunes服务器之间有额外的收据验证过程。我通过移动应用程序获得横切收据数据,将其发送到游戏服务器,然后游戏服务器检查此收据是否有效。