确定退款的Play商店下载

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

我看到人们通过购买应用程序来滥用此function(提供30天免费VPS),通过注册流程创建他们的VPS,然后他们要求退款(如果在2小时内自动获得批准)。

从谷歌钱包我可以看到哪些订单ID被取消,但我如何将其链接回用户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与订单ID(或Google电子钱包中提供的其他信息)相关联?

请注意:这不适用于订单ID随时可用的应用内购买。 这是购买应用程序

谢谢!

修改:Google Play服务授权和用户帐户管理无法让您一直到订单ID: http : //developer.android.com/google/auth/http-auth.html以下是有关应用内结算的文档(毫不奇怪)不提供任何获取应用程序采购订单ID信息的方法: http : //developer.android.com/google/play/billing/billing_reference.html许可不提供订单ID: http:// developer .android.com /谷歌/播放/许可/ overview.html

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

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

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

我看到的唯一经济实惠的解决方案是在两小时过期后, 在应用程序内请求“感兴趣的确认”。

流程将是:

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组用户仍然没有任何不良影响。

也就是说,谷歌不允许应用程序查询“我是怎么出生的?”似乎很奇怪。 (使用应用和设备ID)并至少在合理的时间范围内收回自己的订单ID(或下载ID或唯一生成的ID)。