【发布时间】:2021-07-18 06:14:47
【问题描述】:
在我们的后端服务器中,当用户
- 取消订阅。
- 几天后重新订阅。
重要的是我们要知道,旧的购买令牌和新的购买令牌都是指同一个用户。
原因是,之前,用户已经使用旧的取消订阅购买令牌在服务器中创建了一些数据。
当用户取消订阅并再次重新订阅时,我们希望确保用户仍然有权使用新的购买令牌访问旧数据。
我们希望我们可以从linkedPurchaseToken 获取信息,其中新的购买令牌将指向旧的购买令牌。
但是,根据我们的测试结果,情况并非如此。
Google Play 开发者 API
credentials = service_account.Credentials.from_service_account_file(
constant.PATH_TO_SERVICE_ACCOUNT_JSON,
scopes = constant.SCOPES
)
androidpublisher = googleapiclient.discovery.build(
'androidpublisher',
'v3',
credentials = credentials
)
product = androidpublisher.purchases().subscriptions().get(
packageName = "com.xxx.yyy",
subscriptionId = product_id,
token = token
).execute()
return product
当前有效订阅
{
'startTimeMillis':'1619245597271',
'expiryTimeMillis':'1619246015249',
'autoRenewing':True,
'priceCurrencyCode':'SGD',
'priceAmountMicros':'6980000',
'countryCode':'SG',
'developerPayload':'',
'paymentState':1,
'orderId':'GPA.3314-4833-2752-47988',
'purchaseType':0,
'acknowledgementState':1,
'kind':'androidpublisher#subscriptionPurchase'
}
之前取消的订阅
{
'startTimeMillis':'1619244776697',
'expiryTimeMillis':'1619245074590',
'autoRenewing':False,
'priceCurrencyCode':'SGD',
'priceAmountMicros':'6980000',
'countryCode':'SG',
'developerPayload':'',
'cancelReason':3,
'orderId':'GPA.3358-9904-1003-13416',
'purchaseType':0,
'acknowledgementState':1,
'kind':'androidpublisher#subscriptionPurchase'
}
我们没有linkedPurchaseToken 信息。因此,我们无法知道,两个订阅都指向同一个用户。
在 Google Play Console 中,即使订单 ID 不同,它也能分辨出订阅来自同一用户。 但是,无法通过 Google Play Developer API 响应来知道这些。
我们最初的猜测是,这可能是由于我们的 Google Play 管理中心没有启用重新订阅功能。
但是,目前,我们所有的生产/测试版/测试版 APK 早已升级到 3.0.1。因此,我们不确定是否存在这样的“Resubscribe 目前对您的用户不可用,因为您的应用并未在所有活动 APK 中使用 Billing Library 2.0。”消息。
任何想法,我们如何找出最新的有效订阅和取消的非有效订阅是否实际上指的是同一用户?
【问题讨论】:
标签: android google-play in-app-billing google-play-console google-play-developer-api