2

我购买了三种不同持续时间的不同订阅。我已经配置了测试帐户,我可以进行测试购买。对于这些购买,谷歌不向我收费,但它们看起来很像真实的。购买成功后,In-App Billing 会向我发送一些关于我的购买的数据,如、packageNameproductId等。orderIdpurchaseToken

在我的处理代码中,我需要以某种方式知道这次购买是否真实。纯文本:我真的为此赚了钱,还是这个购买是由某个测试帐户进行的,而我没有赚到钱?我需要这种信息来进行采购会计。

所以问题是:如何区分代码中的真实订阅购买和测试订阅购买?

谢谢。

PS 我正在使用 Xamarin 和 C# 进行开发。

4

2 回答 2

3

如果您的帐户未添加到您的 Google Play 开发者帐户的许可帐户列表中,您可以在 alpha/beta 版本上进行实际购买。

检查这个

通过 alpha/beta 测试组,真实用户(由您选择)可以从 Google Play 安装您的应用并测试您的应用内产品。他们可以使用 Google Play 中的任何常规付款方式进行实际购买,从而向其帐户收取实际费用。请注意,如果您在 alpha 和 beta 分发组中包含测试许可证帐户,则这些用户将只能进行测试购买。

更新

要知道哪个购买是真实的,哪个是测试购买,请检查 orderId 作为响应。不会为测试购买分配 orderId。

Android IAP 问题,购买对象中没有 OrderID

于 2015-11-25T12:01:40.973 回答
3

在最新的 v3 Android Publisher API 上,您可以获得一个 SubscriptionPurchase 对象,前提是您具有包名称、SubscriptionId 和 Token。SubscriptionPurchase 对象包含一个名为purchaseType的可选(可为空)整数字段。根据谷歌的说法,当它被设置并且值为 0 时,这是一个测试订阅。我可以确认这有效并与我返回的数据相匹配。以下是谷歌文档中的引用:

    //     The type of purchase of the subscription. This field is only set if this purchase
    //     was not made using the standard in-app billing flow. Possible values are: 0.
    //     Test (i.e. purchased from a license testing account) 1. Promo (i.e. purchased
    //     using a promo code)
于 2020-11-26T11:04:03.610 回答