Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google Play Developer API: "startTimeMillis" is updated when it should not

I am developing an application with in-app subscriptions. On our servers, I check the validity of each subscription through the Google Play Developer API.

As stated in the docs, a request to the Purchases.subscriptions endpoint, returns something like that:

{
  "kind": "androidpublisher#subscriptionPurchase",
  "startTimeMillis": long,
  "expiryTimeMillis": long,
  "autoRenewing": boolean
}

However, I am finding some strange behavior with it. When a user cancels a subscription through Google Play app, the "startTimeMillis" field is updated to the time of cancellation.

According to the documentation, "startTimeMillis" is "Time at which the subscription was granted", so I expected that this value should not change. Could anybody explain me why it is updated after a cancellation?

I have another important question that I can not test yet... Could someone, who has spent several months working with subscriptions, tell me if this "startTimeMillis" is updated too when the subscription is automatically renewed? I expect too that this should not change but... now, I am not sure about this.

Thank you

like image 443
blindOSX Avatar asked Dec 11 '14 14:12

blindOSX


People also ask

What is Google Developer API?

Google Play Android Developer API. Lets Android application developers access their Google Play accounts.

How do I set up real time developer notifications?

Enable Real-time developer notifications for your appOpen the Google Play Console. Select your app. Go to Monetize > Monetization setup. Scroll to the Real-time developer notifications section at the top of the page.


1 Answers

Had similar issue and found that:

  1. When user cancels the subscription, startTimeMillis won't be changed, only autoRenewing changed to false

  2. If the user subscribes again after the cancelation, google will send you a new subscription token, but when querying with the previous token, the response would be changed to the same as the new token, i.e. startTimeMillis would be changed

like image 106
Bood Avatar answered Sep 20 '22 19:09

Bood