发布应用内购买的促销代码似乎会阻止应用(再次)执行远程服务器购买验证!
当promo code用于应用内购买( PURCHASES_UPDATED
广播)时,它将完全绕过购买流程,因此应用程序无法提供"developerPayload",用于远程验证 .
稍后当应用程序调用getPurchases()来获取/验证所有者产品时,促销购买的purchase data当然不会包含 "developerPayload"
,但是 "orderId"
也不能用于使用Google Play Developer API进行远程验证 .
How is an app supposed to verify in-app purchases made with promo codes?
允许用户通过Google Play商店应用/网站兑换促销代码,从而绕过购买流程,这似乎是一项无法实现的重大疏忽 .
问题报告:
-
https://code.google.com/p/android/issues/detail?id=200722(已关闭的错误论坛)
-
https://github.com/googlesamples/android-play-billing/issues/7
类似帖子:
1 回答
这确实是Google方面的安全问题,所以我建议一个解决方法 .
与促销代码一起为用户提供服务器生成的服务器ID,在获得促销购买时验证服务器ID并仅接受购买一次 .
从市场使用时,使用引荐来源发送id . 从app使用时有自己的逻辑来提供服务器ID .
底线没有其他解决方案,但有些如何识别具有某种id的用户 .