【问题标题】:how to synchronise "non-consumable purchase" with a "online multiplayer game server"如何将“非消耗品购买”与“在线多人游戏服务器”同步
【发布时间】:2017-06-18 17:08:39
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

  • 您在使用 Game Center 进行多人游戏吗???
  • 不,但我找到了解决方案,我会尽快发布。

标签: ios mobile in-app-purchase multiplayer online-game


【解决方案1】:

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

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

同时检查:https://developer.apple.com/in-app-purchase/In-App-Purchase-Guidelines.pdf

【讨论】:

  • 我怎么能检测到,有人删除了应用程序,重新安装,用不同的帐户登录游戏服务器并为该帐户恢复PRO模式(他可以轻松做到这一点可能他的很多朋友玩游戏)我想知道,我怎样才能匹配 appleuser gameuser
【解决方案2】:

我找到了解决办法

服务器产品模型部分对此进行了说明。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    相关资源
    最近更新 更多