收到欺诈性 Google Play 订单 ID

Han*_*Han 5 android in-app-purchase in-app-billing

我已经为我的 Android 应用实现了应用内计费。

在我的应用程序中购买功能后,我一直在将该采购订单的购买包收集到我的本地服务器。

我不知道出了什么问题或发生了什么,但我在本地服务器上观察到一些采购订单,这些订单没有反映在商家页面上。

当我在服务器上检查采购订单时,我发现了一些奇怪的东西,例如,该采购的订单 ID 被发现为

Order ID  <19 Digit number>.<16 Digit Number>
  say <1234567891234567891>.<1234567891234567>
Run Code Online (Sandbox Code Playgroud)

据谷歌称,

订单号本身是一个仅由数字组成的字符串,其格式由 Google 分配和管理。

对于日期为 2012 年 12 月 5 日或之后的交易,Google Payments 会分配一个商家订单号(而不是 Google 订单号)并将商家订单号报告为 orderId 的值。下面是一个例子:

"orderId" : "GPA.1234-5678-9012-34567"

对于 2012 年 12 月 5 日之前的交易,Google checkout 分配了一个 Google 订单号,并将该号码报告为 orderId 的值。下面是一个包含 Google 订单号的 orderId 示例:

“订单ID”:“556515565155651”

商户页面显示的订单格式如下:

"orderId" : "GPA.1234-5678-9012-34567"
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 格式以外的 OrderId 是否被视为欺诈?

  2. 如何在欺诈订单的情况下验证实际购买(即订单 ID <19 位数字>.<16 位数字>)?

ran*_*dom 0

您应该使用购买令牌来验证订单,而不是使用 Google 购买 API 的订单 ID

购买.订阅:获取

看来谷歌服务器返回的订单 ID 可能并不总是GPA.1234-5678-9012-34567按照此链接采用新格式 () 。由于格式将来可能随时更改,因此最好避免使用它进行验证。