Search Unity

Accessing subscription info on cancelled subscriptions.

Discussion in 'Unity IAP' started by moproductions, Mar 11, 2019.

  1. moproductions

    moproductions

    Joined:
    Sep 28, 2010
    Posts:
    88
    Our application's implementation of auto-renewable subscriptions will be implemented not just on feature access, but giving the user a monthly allotment of in-game currency. In order to determine how many coins they are due will be determined by parsing the latest product receipt/payload and comparing it to our server-side saved last payout info. However, at least with Google, the way things currently work is that if the user is cancelled, then there's no active receipt and no way to get the user's subscription info. This causes this case:

    1) User subscribes, then closes app.
    2) User doesn't use the app for 6 months, during which they are charged monthly by the Google Play store.
    3) User cancels their subscription via Google Play store.
    4) User waits until after subscription expires to start app again.

    In this case, the user should be given the in-game currency that they have paid for during the months they weren't using the app. However, since the subscription was cancelled, there's no way to get the information we need to know what they are owed, and the user has ended up paying for products that they can't receive. We think of it like a magazine subscription you pick up at a PO box. Even if you cancel after a while, you're still owed the magazines you've paid for. Is there any way to get a user's subscription info if they are cancelled?


    There's also another user case where they could exploit the same system.
    1) User subscribes, is given their first allotment of in-game currency, and we save the payout data on our server-side payout info.
    2) User cancels subscription in Google Play store.
    3) User waits 6 months, then re-subscribes in Google Play store.
    4) User starts app, we determine via receipt and server info that they are subscribed and were last paid 6 months ago, so we give them 6 months worth of in-game currency.

    Is there any way to get a history of cancel/renew via Google receipts? This 2nd case we're less worried about but we still want our app to be as fair as possible to both us and them.

    Thanks
    -Mo
     
  2. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    One solution might be to capture the original purchase date and subscription length and other receipt information on their first purchase, and store the information on your cloud server, or in persistent storage on the device.