Play商店现在会在购买后2小时内自动批准退款。我有一个Android应用程序,人们可以从应用程序创建和控制VPS游戏主机。也就是说,当你启动应用程序时,你会经历一个注册流程,之后你会有一个运行游戏的VPS。注册后,如果您想对VPS进行任何更改,则只需要该应用程序。
我看到有人通过购买应用程序来滥用此功能(提供30天免费VPS),通过注册流程创建他们的VPS,然后他们要求退款(如果& #2;在2小时内)。
从Google电子钱包中我可以看到哪些订单ID被取消了,但是如何将其链接回用户设备ID或我可以在应用中获取的其他内容?
我强迫用户在完成注册流程之前声明他们的Google用户帐户:
Intent intent = AccountPicker.newChooseAccountIntent(null, null, new String[]{"com.google"}, false, null, null, null, null);
// ...
email = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
但这只会给我他们的电子邮件地址,我可以将其链接回订单ID,这是Google电子钱包中唯一的标识符。
如何将其帐户/电子邮件/设备ID与订单ID(或Google电子钱包中提供的其他信息)相关联?
请注意:这不适用于订单ID随时可用的应用内购买。这是购买应用。
谢谢!
编辑: Google Play服务授权和用户帐户管理无法让您一直到达OrderID: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/google/play/licensing/overview.html
有类似问题但未得到答复的人:http://pcandsys.com/20378/verify-purchase-in-google-play-by-orderid / B3
答案 0 :(得分:0)
不完全是您的问题的答案,但在您的情况下,我会将租约时间限制为几个小时,而安装的应用程序的后台服务应该在几个小时内唤醒一次,以延长租约时间。这种低频率不会引入任何可见的功耗或数据流量影响。当然为了避免可能的冲突,租约时间应该比更新时间大几倍(例如24小时租用/ 8小时更新一次)
另一个选择可能是让您的应用免费试用期+应用内购买,以使其永久
答案 1 :(得分:0)
我看到的唯一经济实惠的解决方案是在两小时过后,在应用中请求“感兴趣的确认”。
流程将是:
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)。