Google Play订单ID已更新为新格式

时间:2015-07-24 04:32:04

标签: android in-app-purchase in-app-billing android-pay

我最近购买的所有Android应用都显示了新的订单ID格式。

旧格式:

[merchant ID].[actual order ID]

我们可以使用此格式来检查订单ID的前缀是否与商家ID匹配,并防止像Freedom这样的应用程序可能存在黑客攻击。

新格式:

GPA. 1234-5678-9123-45678
  • 我最近的所有订单都以" GPA开始。" (是的,附加点也在那里)
  • 有一个17位数字,分为4个块
  • 前3个区块每个包含4个数字,最后3个区块包含5个数字

我想知道这个数字代表什么,子块的重要性,是否包含在任何地方的商家ID?

2 个答案:

答案 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是否相同。

请尽快纠正我或提出更多想法以尽快解决此问题。

干杯