Android 应用内购买有效订单但在 Google Play 商店中不存在

时间:2021-06-06 02:15:25

标签: android in-app-purchase

我在 Google Play 商店发布了一个应用程序,它的名字是 PainterSVG,主要目的是帮助 SVG 设计师创建/编辑 SVG 矢量图像。

应用中的一项被设计为付费功能(使用下载的字体),因此用户需要通过 Google 应用内购买付费才能购买。我设计了所有应用内购买代码并成功测试。

一周前,同一用户在很短的时间内突然爆发了购买行为。购买的状态全部变为 Purchase.PurchaseState.PURCHASED。 jason 中的原始数据和签名都通过我的应用程序的公钥进行验证。

但是在 Google Play 商店中,没有这些购买的信息,它们根本不存在,当然我也没有收入。

这是我记录的一个购买示例:

原始数据: { “订单ID”: “1788684269051654849.8163737331748355”, “的packageName”: “p.svg”, “的productId”: “paintersvg_point_100”, “purchaseTime”:1622106599816 “purchaseState”:0 “purchaseToken”:“kslypocwqdttgxzhetcdskic.AO-J1OXwNhKHOWYKxGAGFZvXgslNtkhqCrpQBaxvFSzgcuE- ZLLKCev_hpKJTGlFEFCsXkWuJOXswCzOvadVljYnHiJkIygNoxawFQPaKePZppvbRZZUNToExOfEycRjxTsulwPClSAi"}

签名: bVYGfzqbt6uWKnmw5xSW5tQek + tSwP0GgUKXz6fNXBCmGEedUrffpKPOXaG2RyfVtYvICThcxumD7kVWNSVxvE9DBJrVDjo + ipTPB9hkYebVQKib1LMBFbSMTpaA9Av2ioP + T / pBQt2EuvRLKUpnZaz5C / 2uX7OvOcJtjwYniH / I7oRHvNRBxD6R78Tp6DNySotp41XUwDPmeebC6A38PVM5MhtaY9czWNaa3j3OG7rPAp0j2V5nWsdmmahu8HqBxTyqWdfmf83m3oaHrTvH7vATaKJPMcXdm1aavYAsyHCPzhFGeglU7 / KRgUCkzyZ8edcA81F / x9hUVC2QL + cdXw ==

可以使用我的应用程序的公钥验证原始数据和签名对于我的应用程序是否正确。仅当购买状态为已购买时,才会记录原始数据和签名。并且所有订单 ID 都不相同。

我不知道这里发生了什么——订单来自哪里,发生了什么?用户真的付费了吗?并支付了很多次?我应该给他退款吗?有人可以帮我吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您看到的是欺诈企图

我不会在这里放链接,但在 Android 上,恶意用户可以修补 Play 商店应用程序以绕过应用内购买。因此,当用户尝试购买某物时,会向您的应用返回一张伪造(但有效)的收据,该收据默认为有效收据。

幸运的是,您并不信任收据,而是通过调用不知道收据的 Google API 进行验证。

欺诈企图示例

这是我们最近在 Purchasely 看到的一个例子(我们管理应用程序的应用程序内购买,所以我们经常看到这种事情):

fraud attemps

所有这些欺诈尝试都是由同一用户进行的。

如您所见:

  • 他们在很短的时间内做出不同的尝试
  • 返回的收据是随机生成的:价格不正确。更糟糕的是,每月发送的价格(1400 美元)高于每年发送的价格(500 美元),这没有任何意义^^'

结论

别担心:)