我有三次不同的订阅购买,持续时间不同。我已经配置了测试帐户,可以进行测试购买。对于这些购买,谷歌不向我收费,但它们看起来很像真实的。当购买成功时,应用内计费会向我发送一些关于我购买的数据,如packageName
、productId
、orderId
、purchaseToken
等。
在我的处理代码中,我需要知道这次购买是否真实。简单地说:我真的为此赚钱了吗?还是这次购买是由某个测试账户进行的,而我却一无所获?我需要这类信息用于采购会计。
所以问题是:如何区分代码中的真实订阅购买和测试订阅购买?
谢谢。
附言:我正在使用Xamarin和C#进行开发。
如果您的帐户没有添加到Google Play开发者帐户的授权帐户列表中,您可以在alpha/beta版本上进行真正的购买。
检查此项:
有了alpha/beta测试组,真正的用户(由您选择)可以安装从Google Play下载您的应用程序,并测试您的应用内产品。他们可以使用他们在Google Play中的任何正常支付方式进行购买。请注意,如果您在alpha和beta中包含测试许可证帐户通讯组,这些用户将只能进行测试购买。
更新
要知道哪一次购买是真实的,哪一次是测试的,请检查订单ID作为响应。不会为测试采购分配订单ID。
Android IAP问题,采购对象中没有订单ID
在最新的v3 Android Publisher API上,如果您有Package名称、SubscriptionId和Token,则可以获得SubscriptionPurchase对象。SubscriptionPurchase对象包含一个名为purchaseType的可选(可为null)整数字段。根据谷歌的说法,当它被设置并且值为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)