0

我正在为 Windows 8 IAP 实现一个简单的服务器端验证,但我对如何处理这个问题感到有些困惑。基本上我所知道的是我使用示例http://msdn.microsoft.com/en-ie/library/windows/apps/jj649137.aspx中包含的代码验证收据

在示例中,有 AppReceipt 和 ProductReceipt。如果我理解正确,有一个简单的 IAP 可以购买,例如游戏中的金币,我只对 ProductReceipt 感兴趣。但是,我完全不明白为什么“AppReceipt”包含在这里。初始应用程序购买总是包含在收据中还是可选字段?

因此,确保用户不能两次“兑现”同一张收据的统一方法只是将 ProductReceipt ID 保存在后端数据库中?对于耐用品和消耗品来说,这将是一种有效的方法,后者尚未实施?

4

1 回答 1

0

AppReceipt 只是一个您可以忽略的示例。在大多数情况下,游戏会向您发送收据(ProductReceipt XML),您必须在服务器端对其进行验证。

如果您查看:http ://social.msdn.microsoft.com/Forums/windowsapps/en-US/8b3cf68d-897d-4a47-ace0-2c42355bf688/protecting-your-windows-store-app-from-unauthorized-use ?forum=windowsstore 你会注意到:

每个用户(和设备)的每个收据元素的 ID 都是唯一的,您可以在服务器上对其进行验证,以确认该交易对该用户而言是合法的,而不是欺诈性交易。当您的应用程序有自己的身份验证机制时,这尤其有价值,因为它允许您验证每个看似购买了您的应用程序的用户实际上是唯一的客户。

因此,如果您愿意,可以从此 XML 中提取 ID。

于 2014-02-25T20:59:37.223 回答