【发布时间】: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