androidin-app-purchasegoogle-playin-app-billingsubscriptions

Android/Google Play: do I really need my OWN server to manage inapp billing subscriptions?


In the Google Play doc, it is written "To verify a purchase, the app passes the purchase token and other details up to your backend servers, which verifies them directly with Google Play using the Google Play Developer API."

My question is : do I really need my own server to implement InApp subscriptions in my Android app ?

Is there a way to implement subscriptions without my own server ? (using only the Google Play Inapp Billing API directly from my app)

Thanks !


Solution

  • Answer to my own question : NO NEED to have its own server to implement inapp subscriptions. An own server simply allows to add a level of security but I don't really care about security in my specific case (no problem if 1% of people bypass the inapp process).

    An own server allows to perform some additional level of checking with the 'boolean verifyDeveloperPayload(Purchase p)' method. Simply return 'true' in all cases as it is set by default in the Google example.

    To implemeent subscriptions simply call :

    mHelper.launchSubscriptionPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener);
    

    instead of :

    mHelper.launchPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener, payload); 
    

    Crete a subscription item in the dev console.

    And that is it !

    EDIT SEPTEMBER 2020: I don't know is it is still true with the V3 of the API... Indeed, the doc mentions that the app must manage the account 'hold status' but I don't know if a server and using RTDN/PubSub is now required.

    EDIT OCTOBER 2020:

    Confirmed that no server is required even with API V3. See here