I can't test this myself, because there is no way to completely terminate subscription, apparently.
So, I want to test the following use case: user buys subscription, cancel's it (or it expires), than user buys same subscription.
What will I get with RESTORE_TRANSACTIONS response? Will I get two items with same item id, different purchase tokens and different state? Or purchaseToken will remain the same? I'm afraid that there will be only one subscription with different order ID and purchase token, and the information on previous subscriptions will be lost, but I can't confirm it right now. Also, will orderId be changed with every recurring purchase inside a subscription?
Why I need this - subscription will supply user with new content daily, so when user cancel subscription (subscription A) and later buys a new one (subscription B) I need to show to user content released during time-frame of subscription A
,and content in a time-frame of subscription B
, but not the content released in period used didn't had active subscription.
Taken right from Android Developers http://developer.android.com/guide/google/play/billing/billing_overview.html
Although I do understand your concern for the Subscription Billing. Google is pretty good about their API and how you should interact with purchases.
When you send a
RESTORE_TRANSACTIONS
request you will get two broadcast back. ARESPONSE_CODE
and aPURCHASE_STATE_CHANGED
. Here's the table from Google stating the different values you could receive.Coming back to your question about buying two subscriptions: you should check to see if the user has bought a subscription with the
GET_PURCHASE_INFORMATION
request, if the Subscription is in the list check the Purchase State of the Subscription to see if you should continue with the purchase.As for what you would get if you "Could" buy two of the same subscriptions, its (I want to say impossible) unlikely... But you will get two order transactions.
As long as you're always aware of the user transactions on your part, Google's API will do the rest. Good luck!