【问题标题】:Identifying refunded Play Store downloads识别已退款的 Play 商店下载
【发布时间】:2015-03-09 15:53:48
【问题描述】:

Play 商店现在会在购买后 2 小时内自动批准退款。我有一个 Android 应用程序,人们可以从该应用程序创建和控制 VPS 游戏主机。也就是说,当你启动应用程序时,你会经历一个注册流程,然后你就有一个运行游戏的 VPS。注册后,如果您想对 VPS 进行任何更改,您只需要该应用程序。

我看到人们通过购买应用程序(附带 30 天免费 VPS)、通过注册流程创建他们的 VPS,然后他们要求退款(如果在 2小时)。

从 Google 电子钱包中,我可以看到哪些 OrderID 被取消了,但是如何将其链接回用户的 deviceID 或我可以在应用中获取的其他内容?

我强制用户在完成注册流程之前声明他们的 Google 用户帐户:

Intent intent = AccountPicker.newChooseAccountIntent(null, null, new String[]{"com.google"}, false, null, null, null, null);
// ...
email = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);

但这只会给我他们的电子邮件地址,我无法将其链接回作为 Google 电子钱包中唯一标识符的 OrderID。

如何将他们的帐户/电子邮件/设备 ID 链接到 OrderID(或 Google 电子钱包中的其他信息)?

请注意:这不适用于 OrderID 随时可用的应用内购买。这是为了购买应用程序

谢谢!

编辑: Google Play 服务授权和用户帐户管理不会让您一直到 OrderID:http://developer.android.com/google/auth/http-auth.html 以下是有关应用内计费的文档(不足为奇)不提供任何获取有关应用采购订单 ID 信息的方式:http://developer.android.com/google/play/billing/billing_reference.html 许可也不提供 OrderID:http://developer.android.com/google/play/licensing/overview.html

有类似问题但未得到答复的人:http://pcandsys.com/20378/verify-purchase-in-google-play-by-orderid /b3

【问题讨论】:

  • 要求用户将他们在来自 Google Play 商店的电子邮件中收到的订单 ID 输入到应用程序的屏幕中会有帮助吗?如果它以这种方式工作,也许它可能是一个临时解决方案,直到有更好的解决方案。
  • 理论上可行。每当我检测到可疑帐户时,我都会向应用程序推送通知,要求他们通过电子邮件向我发送购买收据。我使用这种方法发现,很多使用手机/设备的人无法访问他们用于购买的电子邮件(发送收据的地方)。很可能是因为孩子们使用他们父母的设备使用该设备。我认为让他们发送 orderID 的摩擦太高了。此外,Google Play 应该真正提供这项服务,而不是手动检索 orderID。我想你不知道他们是否这样做..?
  • 对不起,我不知道。我同意理想情况下应该从 Google Play 获得这些信息。看起来我们可能不在他们默认支持的用例中。作为进一步复杂化的示例,如果我正确理解您的情况,那么他们在您的应用中选择的帐户也有可能不是真正支付的帐户,对吧?
  • 看来this post 可能会以某种方式帮助我们(通过帐户验证)。我不确定我们是否已经掌握了所有的谜题。
  • 不完全是我们正在寻找的东西,但它可能会完成这项工作,假设破解的应用程序不能伪造令牌。我会试试这个!我已经测试了 Play Store 的许可库,并且他们可以破解。此外,它经常出现问题,以至于即使是合法/许可的应用有时也会被标记为未经许可,这意味着严格执行许可是不可行的。

标签: android google-play in-app-billing android-pay android-billing


【解决方案1】:

不完全是您问题的答案,但在您的情况下,我会将租用时间限制为几个小时,而已安装应用的后台服务应在几个小时内唤醒一次以延长租用时间。如此低的频率不会引入任何可见的功耗或数据流量影响。当然,为了避免可能的冲突,租用时间应该比更新时间长几倍(例如,租用 24 小时/每 8 小时更新一次)

另一种选择可能是让您的应用免费试用期 + 应用内购买,以使其永久化

【讨论】:

  • 让应用程序免费,然后要求应用程序内购买来支付服务费用在技术上是可行的。我尝试了这个,并被那些期待一个完全正常工作的应用程序的人的差评淹没了。通过从一开始就付款,我可以避免人们下载它而期望应用程序“可用”而无需进一步付款。另外,我不能让应用程序在后台运行。即使手机/设备关闭了几天,VPS 也需要继续运行。
【解决方案2】:

我看到的唯一负担得起的解决方案是在两个小时后在应用内请求“兴趣确认”

流程是:

00:00 用户购买应用 00:05 用户提供他的电子邮件地址并注册 00:10 VPS 启动。通知用户 COI 要求并确认。 00:30 用户申请退款

02:05 远程服务器发送一封友好的提醒邮件,“嘿,您需要确认您的兴趣才能获得您的 30 天。”

03:00 缺少 COI,VPS 被暂停/停止等待删除。

仍然安装应用的用户在点击确认时不会遇到什么问题(在宽限时间到期之前,该按钮未启用)。也许您甚至可以设置定时闹钟?

使用该应用、已关闭该应用以及不查看电子邮件的用户(我们称他们为“G 组”),好吧。他们将不得不重新创建 VPS。但是他们被警告了,不是吗?他们无法访问电子邮件,但应用程序本身呢?

尝试再次下载该应用程序的用户将需要登录到与以前相同的帐户。您可以很容易地识别它们。

您还可以进一步减少用户的麻烦,具体取决于 Play 商店报告的及时性(我忽略了这一点)。假设您收到延迟退款的通知,保证不超过 X 分钟。这意味着,如果在任何给定时刻至少 120+X 分钟没有退款通知,所有在 120+X 分钟之前创建且其 COI 仍处于待处理状态的 VPS 都与已确认的一样好,并且它们的待处理状态可以安全地清除而无需用户操作。因此,所有 G 组用户在评估应用的同时没有有任何人要求退款仍然不会产生不良影响。

也就是说,Google 不允许应用查询“我是如何出生的?”对我来说似乎很奇怪。 (带有应用和设备 ID)并至少在合理的时间范围内收到自己的订单 ID(或下载 ID,或唯一生成的 ID)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多