【问题标题】:Fraud Google Play Order ID received收到欺诈 Google Play 订单 ID
【发布时间】:2016-08-01 09:08:05
【问题描述】:

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

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

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

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

Order ID  <19 Digit number>.<16 Digit Number>
  say <1234567891234567891>.<1234567891234567>

根据谷歌,

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

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

“orderId”:“GPA.1234-5678-9012-34567”

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

“orderId”:“556515565155651”

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

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

问题:

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

  2. 如果出现欺诈订单(即订单 ID .),如何验证实际购买?

【问题讨论】:

  • 你有没有得到任何答案?我们也面临同样的问题
  • 你有没有想过这个问题?我也遇到了同样的问题

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


【解决方案1】:
  1. 是的,无效的 orderId 具有异常的格式。如果不是欺诈,那就是不正当的订单,没有有效的收入。
  2. 您以相同的方式验证¹所有购买;结果会告诉您它是否可以接受。

请注意:此答案仅基于大约。四年(订阅)数据,因为不知道具体的文档。尽管如此,还是出现了一些模式:

  • 有效令牌的长度始终为 144 个字符,在初始 [a-z]{24} 部分之后有一个点分隔的 119 个字符的 Base64ish 部分,欺诈尝试仅由该部分组成(例如 eiorsfdmklehiojapofmknoe)。
  • 正确的 orderId 总是看起来像 GPA\.[1-9][0-9]{3}(-[0-9]{4}){3}[0-9](例如 GPA.3479-1780-0192-98654)。
  • 无效的 orderId 显示类似 [1-9][0-9]{18}\.[0-9]{16} 的格式(例如 2394627089137670234.7256937842057394)。

通过这些和这样的规则,您可以严格检查成功案例(应该> 90%),否则可以执行任何组合操作:

  • 撤销授予的功能
  • 通知您的用户/客户
  • 提醒您的管理员/员工单独检查这些案例
  • 从这些实例中推导出更多规则

¹要验证购买,Google Play 开发者 API 的“订阅和应用内购买 API”部分中有 get for productsget for subscriptions

【讨论】:

    【解决方案2】:

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

    Purchases.subscriptions: get

    根据link,谷歌服务器返回的订单 ID 可能并不总是采用新格式 (GPA.1234-5678-9012-34567)。由于格式可能在将来随时更改,因此最好避免将其用于验证。

    【讨论】:

      【解决方案3】:

      如果您想验证购买的有效性,您必须验证签名。

      任何不验证签名的应用内计费实现都很差,并且能够接受欺诈性购买。

      按照 Google 的建议,最好在外部服务器上验证签名,这里有一个示例。 Android - protecting in app purchases with server side verification

      【讨论】:

        猜你喜欢
        • 2016-08-18
        • 2020-07-26
        • 2010-11-10
        • 2012-02-12
        • 2013-01-14
        • 2018-12-21
        • 2014-10-12
        • 2013-02-25
        • 2019-10-24
        相关资源
        最近更新 更多