我正在使用第 3 版的应用内计费 API。我有一个单一的、托管的、非消耗品。我还没有在我的应用程序中发布这个功能,所以我想在购买之前决定购买有效载荷的内容。
来自“安全最佳实践”:
发出购买请求时设置开发者有效负载字符串
使用 In-app Billing Version 3 API,您可以在向 Google Play 发送购买请求时包含一个“开发者有效负载”字符串令牌。通常,这用于传递唯一标识此购买请求的字符串令牌。如果您指定字符串值,Google Play 会将此字符串与购买响应一起返回。随后,当您查询此次购买时,Google Play 会返回此字符串以及购买详情。
您应该传入一个字符串令牌,以帮助您的应用程序识别进行购买的用户,以便您以后可以验证这是该用户的合法购买。对于消耗品,您可以使用随机生成的字符串,但对于非消耗品,您应该使用唯一标识用户的字符串。
当您从 Google Play 收到响应时,请确保验证开发人员有效负载字符串与您之前随购买请求发送的令牌匹配。作为进一步的安全预防措施,您应该在自己的安全服务器上执行验证。
对或错,我决定不采取设置服务器进行购买验证的“进一步安全预防措施”。而且我不存储自己的购买记录——我总是调用计费 API。那么我真的有任何理由进行此有效负载验证吗?验证 API 本身肯定会在将商品报告为已购买之前验证用户的身份,如果攻击者入侵了设备(应用程序或 google play API),我看不出进行额外检查有什么好处用户在设备上的标识,很容易被绕过。还是有我没有想到的这样做的理由?