应用内购买促销代码会打破远程服务器验证?
问题描述:
发布应用内购买的促销代码似乎会阻止应用(再次)执行远程服务器购买验证!应用内购买促销代码会打破远程服务器验证?
当promo code用于应用程序内购买(PURCHASES_UPDATED
广播)时,它将完全绕过购买流程,因此应用程序无法提供用于远程验证的"developerPayload"。
后来,当应用程序调用getPurchases()获得/验证所有者的产品,purchase data的促销采购将不包含当然是一个"developerPayload"
,但既不是"orderId"
,使用Google Play Developer API远程验证也非常有用。
应用程序如何验证使用促销代码进行的应用内购买?
允许用户通过Google Play商店应用/网站对促销代码进行兑换,从而绕过购买流程,看起来像是一项不应该有的主要监督。
问题报告:
- https://code.google.com/p/android/issues/detail?id=200722(关闭WrongForum)
- https://github.com/googlesamples/android-play-billing/issues/7
类似的帖子:
答
这确实是一个来自Google方面的安全问题,所以我会提出一个解决方法。
随着促销代码向用户提供由服务器生成的服务器ID,当获得促销购买时验证服务器ID并接受一次购买。
当使用从市场发送ID与引荐。当从应用程序使用有你自己的逻辑提供服务器ID。
底线没有其他解决方案,但一些如何识别用户与某种形式的ID。
简单的解决方法,如果我明白你在问什么:让用户卸载你的应用程序,将促销代码放在Play商店的兑换部分,然后用该功能重新安装应用程序。我假设你将为新用户提供促销代码,所以这将是一个边缘案例问题。 –