简体   繁体   English

识别退款的Play商店下载内容

[英]Identifying refunded Play Store downloads

Play Store is now automatically approving refunds if they happen with 2 hours after the purchase. 如果购买后2个小时内发生退款,Play商店现在会自动批准退款。 I have an Android App where people can create and control a VPS gaming host from the app. 我有一个Android应用程序,人们可以从该应用程序创建和控制VPS游戏主机。 That is, when you start the app you go through a sign-up flow and afterwards you have a VPS that runs your game. 也就是说,启动应用程序时,您将经历注册流程,然后拥有运行游戏的VPS。 After the sign-up you only need the app if you want to make any changes to the VPS. 注册后,如果要对VPS进行任何更改,则仅需要该应用程序。

I'm seeing people abusing this by purchasing the app (comes with 30 days free VPS), going through the sign-up flow to create their VPS, and afterwards they request a refund (which automatically gets approved if it's within 2 hours). 我看到人们通过购买应用程序(带有30天的免费VPS),通过注册流程创建他们的VPS来滥用此行为,然后他们要求退款(如果退款在2小时内自动获得批准)。

From Google Wallet I can see which OrderIDs are getting canceled, but how can I link that back to the users deviceID or something else that I can fetch in the app? 从Google电子钱包中,我可以看到哪些订单ID正在被取消,但是如何将其链接回用户的设备ID或可以在应用程序中获取的其他内容?

I'm forcing users to declare their Google user account before they can go through the sign up flow: 我强迫用户先声明其Google用户帐户,然后才能进行注册流程:

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

But this only gives me their email address, which I can't link back to the OrderID that is the only identifier in Google Wallet. 但这只给了我他们的电子邮件地址,我无法链接回它作为Google电子钱包中唯一标识符的OrderID。

How do I link their account/email/deviceID to the OrderID (or other information available in Google Wallet)? 如何将他们的帐户/电子邮件/设备ID链接到OrderID(或Google电子钱包中可用的其他信息)?

Please note: This is NOT for in-app purchases where the OrderID is readily available. 请注意:这不适用于OrderID随时可用的应用内购买。 This is for the purchase of the app . 这是用于购买该应用程序的

Thanks! 谢谢!

Edit: Google Play Services authorization and user account management doesn't get you all the way to OrderID: http://developer.android.com/google/auth/http-auth.html Here's the documentation on in-app billing which (not surprisingly) do not offer any way of getting information about the app purchase order ID: http://developer.android.com/google/play/billing/billing_reference.html Licensing doesn't provide OrderIDs either: http://developer.android.com/google/play/licensing/overview.html 编辑: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

Person with similar issue but also unanswered: http://pcandsys.com/20378/verify-purchase-in-google-play-by-orderid /b3 有类似问题但也没有答案的人: http : //pcandsys.com/20378/verify-purchase-in-google-play-by-orderid / b3

Not exactly the answer to your question, but in your situation I would limit lease time to few hours, while installed app's background service should wake up once in a few hours in order to extend the lease time. 不完全是您问题的答案,但是在您的情况下,我会将租赁时间限制为几个小时,而已安装的应用程序的后台服务应在几个小时内唤醒一次,以延长租赁时间。 Such a low frequency does not introduce any visible power consumption or data traffic impact. 这样的低频不会带来任何可见的功耗或数据流量影响。 Of course in order to avoid possible collisions, lease time should be few times greater than update time (eg lease for 24 hours / updates once in 8 hours) 当然,为了避免可能的冲突,租约时间应比更新时间长几倍(例如,租用24小时/每8小时更新一次)

Another option may be to make your app free with trial period + in-app purchase in order to make it permanent 另一种选择是让您的应用在试用期+应用内购买免费,以使其永久存在

The only affordable solution that I see is to request a "confirmation of interest" from within the app , after the two hours have expired. 我看到的唯一负担得起的解决方案是在两个小时过后, 从应用程序内请求“确认权益”。

The flow would be: 流程为:

00:00 User purchases app 00:05 User supplies his email address and signs up 00:10 VPS is activated. 00:00用户购买了应用程序00:05用户提供了他的电子邮件地址并注册了00:10 VPS。 User is notified of COI requirement and acknowledges. 通知用户COI要求并确认。 00:30 User requests refund 00:30用户要求退款

02:05 Remote server sends a friendly reminder email, "Hey, you need to confirm your interest to get your 30 days." 02:05远程服务器发送一封友好的提醒电子邮件,“嘿,您需要确认您的兴趣才能获得30天的服务。”

03:00 Lacking a COI, the VPS is paused/stopped pending deletion. 03:00缺少COI,VPS将暂停/停止等待删除。

Users with their app still installed will have little trouble hitting confirm (the button is not enabled before the grace time has expired). 仍安装了其应用的用户点击确认几乎不会有任何麻烦(宽限时间到期前未启用该按钮)。 Maybe you can even set a timed alarm? 也许您甚至可以设置定时警报?

Users with the app, that have it turned off, and who don't check the email (let's call them "Group G"), well. 使用该应用程序,已将其关闭并且不检查电子邮件的用户(我们称其为“ Group G”)。 They will have to re-create the VPS. 他们将不得不重新创建VPS。 But they were warned, weren't they? 但是他们被警告了,不是吗? They had no access to the email, but how about the app itself? 他们无法访问电子邮件,但是应用程序本身如何?

Users that try to download again the app will need to login to the same account as before. 尝试再次下载该应用程序的用户将需要登录到以前的帐户。 You can identify them easily enough. 您可以轻松地识别它们。

You can also further reduce trouble for users, depending on the promptness of Play Store reporting (which I ignore). 您还可以根据Play商店报告的及时性(我将其忽略)进一步减少用户的麻烦。 Let's say that you are informed of a refund with a delay which is guaranteed to not exceed X minutes. 假设您收到退款通知,但延迟时间不得超过X分钟。 This means that if at any given moment there have been no refund notifications for at least 120+X minutes , all VPS created earlier than 120+X minutes ago and whose COI is still pending are as good as confirmed, and their pending status can be safely cleared with no need of user action. 这意味着,如果在任何给定时刻至少有120 + X分钟没有退款通知,则早于120 + X分钟之前创建且其COI仍悬而未决的所有VPS都将得到确认,其状态为安全清除,无需用户操作。 So all Group G users that happen to not have anyone requesting a refund at the same time they evaluate the app will still have no ill effects. 因此,所有G组用户在评估应用程序的同时碰巧都没有要求退款的情况, 仍然不会有不良影响。

That said, it seems quite weird to me that Google does not allow an app to query "How was I born?" 也就是说,Google不允许应用程序查询“我是怎么出生的”对我来说很奇怪。 (with app and device ID) and receive its own order ID (or download ID, or uniquely generated ID) back, at least inside a reasonable time frame. (具有应用和设备ID),并至少在合理的时间内收到自己的订单ID(或下载ID,或唯一生成的ID)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM