На нашем внутреннем сервере, когда пользователь
- Отменить подписку.
- Подпишитесь снова через несколько дней.
Для нас крайне важно знать, что старый и новый токены покупки относятся к одному и тому же пользователю.
Причина в том, что ранее пользователь уже создал некоторые данные на сервере, используя старый токен отмененной покупки подписки.
Когда пользователь отменяет подписку и повторно подписывается снова, мы хотим убедиться, что пользователь по-прежнему авторизован для доступа к старым данным, используя новый токен покупки.
Мы ожидаем, что сможем получить информацию от linkedPurchaseToken
, где новый токен покупки будет указывать на старый токен покупки.
Однако, судя по результатам нашего теста, это не так.
API разработчика Google Play
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 он может определить, что подписки принадлежат одному и тому же пользователю, даже если идентификатор заказа отличается. Однако невозможно узнать это через ответ Google Play Developer API.
По нашему первоначальному предположению, это может быть связано с тем, что функция Повторной подписки не включена в нашей консоли Google Play.
Но в настоящее время все наши производственные / бета-версии / тестеры APK уже давно обновлены до версии 3.0.1. Поэтому мы не уверены, есть ли такое сообщение Повторная подписка в настоящее время недоступна для ваших пользователей, поскольку ваше приложение не использует Библиотеку биллинга 2.0 во всех активных APK.
Есть идеи, как мы можем узнать, действительно ли последняя активная подписка и отмененная неактивная подписка относятся к одному и тому же пользователю?