0

我们正在为 iOS 平台开发一款在线移动多人游戏。

在我们的游戏中,玩家可以购买并激活“PRO”模式以获得一些额外的好处。

因此,我们创建了一种“非消耗性”类型的应用内购买。因为,“PRO”模式是一种一次性购买,永久激活的物品。我们将激活它并将必要的数据存储在服务器上,但我们还需要有关“谁刚刚从 iTunes 游戏商店购买了此项目”的信息。

我的问题是:我们如何同步用户的appleid和服务器游戏帐户?appleid 是我们无法从 SDK 中获取的私有变量。

我们也不能使用identifierForVendor,因为有人可以在同一设备上使用不同的帐户登录和注销。

这种情况有什么解决办法吗?还是您建议我将此项目更改为“消耗性”类型并处理服务器端的所有工作?(我想这种情况将来也可能会造成某种麻烦)

编辑:我怎么能检测到:有人删除了应用程序,重新安装,用不同的帐户登录游戏服务器并为这个帐户恢复 PRO 模式(他可以很容易地做到这一点,可能他的很多玩游戏的朋友)我想知道,如何在这种情况下我可以匹配 appleuser <==> gameuser吗?

4

2 回答 2

0

您可以为您的非消耗品实施“restoreCompletedTransactions”方法。

它已准备好使用 Apple 的机制,允许用户恢复购买 - 您只需提供一个按钮和实现。

另请查看:https ://developer.apple.com/in-app-purchase/In-App-Purchase-Guidelines.pdf

于 2013-10-07T09:41:31.297 回答
0

我找到了解决方案

它在服务器产品型号部分进行了解释。

游戏服务器和 iTunes 服务器之间有一个额外的收据验证过程。我通过手机应用程序获取横断面收据数据,将其发送到游戏服务器,然后游戏服务器检查此收据是否有效。

https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/StoreKitGuide/APIOverview/OverviewoftheStoreKitAPI.html#//apple_ref/doc/uid/TP40008267-CH100-SW11

于 2013-10-08T07:20:04.707 回答