我正在为Windows 8 IAP实施简单的服务器端验证,我对如何处理这个问题感到有些困惑。基本上我所知道的是我使用示例中包含的代码验证收据 http://msdn.microsoft.com/en-ie/library/windows/apps/jj649137.aspx
在示例中,有一个AppReceipt和ProductReceipt。如果我理解正确,有一个简单的IAP可以购买,比如游戏中的黄金,我只对ProductReceipt感兴趣。但是,我不明白为什么“AppReceipt”包含在这里。初始应用程序购买是否始终包含在收据中,还是可选字段?
因此,确保用户无法“兑现”相同收据两次的统一方法只是将ProductReceipt ID保存在后端数据库中?对于耐用品和消耗品而言,这将是一种有效的方法,后者尚未实施?
答案 0 :(得分:0)
AppReceipt只是一个你可以忽略的例子。在大多数情况下,游戏会向您发送收据(ProductReceipt XML),您必须在服务器端验证它。
每个收据元素的ID对于每个用户(和设备)都是唯一的,您可以在服务器上对其进行验证,以确认该交易对该用户是合法的,而不是欺诈性交易。当您的应用拥有自己的身份验证机制时,这一点尤其有用,因为它可以让您验证看似购买了您的应用的每个用户实际上是一个独特的客户。
因此,如果您愿意,可以从此XML中提取ID。