【发布时间】:2018-01-12 15:58:21
【问题描述】:
我正在学习如何处理来自 Android 应用的应用内购买。我正在阅读this document。
基本上,本文档描述的流程如下:
我的 Android 应用(又名:客户端)与收集用户付款信息的 Google Play 应用通信,然后与 Google Play 服务器通信。 Google Play 服务器依次将商品分配给用户并响应 Google Play 应用程序,然后通知我的客户购买成功。之后,客户端交付商品,然后向 Google Play 应用报告该商品已被消费,这反过来又导致 Google Play 服务器将商品标记为已消费。
这引发了一个安全问题:我的客户通过告诉我的服务器该项目已被购买来交付该项目。我的服务器是交付该项目的服务器。我的客户端应用程序是一个多人游戏。因此,我的服务器是 来提供此项目的服务器。仅客户端应用程序无法做到这一点。
但是,上述流程要求我的服务器信任客户端。如果客户端被黑客入侵或被恶意程序替换,它可以告诉我的服务器多次交付任何项目。我的服务器现在可以验证这些购买是否有效。这是一个安全风险。
相反,我希望我的服务器询问 Google Play 服务器:此用户是否真正拥有此项目? Google Play 服务器报告的答案是可信的。但是有 API 可以做到这一点吗?如果是这样,该文档在哪里?如果没有这样的API,那么多人游戏如何保证购买的安全??
【问题讨论】:
标签: android google-play google-play-services google-play-games google-play-developer-api