我最近购买的所有Android应用都显示了新的订单ID格式。
旧格式:
[merchant ID].[actual order ID]
我们可以使用此格式来检查订单ID的前缀是否与商家ID匹配,并防止像Freedom这样的应用程序可能存在黑客攻击。
新格式:
GPA. 1234-5678-9123-45678
我想知道这个数字代表什么,子块的重要性,是否包含在任何地方的商家ID?
答案 0 :(得分:8)
实际上,我在2015年5月向google开发者控制台通知图标(他们通常会提醒有关新支持的国家/地区等)时提醒他们有关新订单ID格式的提醒。他们表示GPA缩短了谷歌播放应用程序。根据通知,此更改应在2015年6月完成,但他们没有这样做,我认为它被取消了。我错了。
EDIT(2): 我现在找到了两种类型的订单ID:GPA(它只是字母GPA,而不是数字)。(17位实际订单ID)和(20位商家ID)。(17位实际订单ID)
EDIT(3): Google刚刚回复了我,GPA.1234-5678-9012-34567是订单播放的最终形式。他们告诉我不要使用商家ID来检查购买,而应该使用购买令牌。目前没有技术支持。我仍然没有找到解决这个问题的最佳方法。 为了验证购买是否有效,他们告诉我不要使用订单ID,而是购买令牌,使用google API进行服务器端验证。 它更复杂,但似乎可以阻止自由黑客攻击:https://github.com/soomla/android-store/issues/47
*抱歉我的英语不好。
答案 1 :(得分:2)
我不知道这种变化的原因,以及他们如何告知我们这一变化。使用我们的商家ID检查订单ID是避免黑客入侵的好方法。
无论如何,我一直在考虑快速解决这种情况,我看到的唯一解决方案是使用Google API来检查具体购买。
https://developers.google.com/android-publisher/api-ref/purchases/products/get
发送packageName,产品ID和令牌,然后检查该购买是否存在或者developerPayload是否相同。
请尽快纠正我或提出更多想法以尽快解决此问题。
干杯