Subscription Management Feature - Android

Job ID: 33238169

Budget: ₹12,500 – ₹37,500 INR

The requirement is to implement InApp - Purchase (subscription) for android App using google billing version 4.0 or above which ever is latest.

Implementation of Subscription feature in existing Android Apps.

1. It can have multiple subscription with multiple feature enablement.
2. On subscribing X feature, X amount will be charged.
3. On subscribing X+Y feature, X+Y amount will be charged.
4. On subscribing X+Y+Z feature, X+Y+Z amount will be charged.
5. If customer has subscribed X, he should have option to subscribe X+Y
6. If customer has subscriber X+Y, he should have option to subscriber X+Y+Z.
7. Price of X, Y, Z can be country specific.
8. Discount option should be there while displaying to the customer.

Scope of the requirement

Android Native App
Provide code which can be easily merge with any existing app to enable subscription feature
The code should give flexibility to provide different rates based on country location, offer based on different days or events, different feature based on different subscription chosen
The backend code & db structure should be provided and app code should be able to integrate with backend to manage customer’s subscription
The backed code should be Laravel PHP and db structure should be mysql.
Standard and secure practice should be chosen for the feature implementation.
Document should be shared which describes clear step to implement changes in android app, implement changes at play store.
Document should be shared which describes clear step to implement changes in backed (Laravel PHP and Mysql Database)

Create and configure the products
Configure the Google Play Developer API
Configure Real-time developer notifications
Create a backend server to consume the messages sent to app topic.
Enable Real-time developer notifications for the app

Integrate the Google Play Billing Library into the app should have

1. Life of a purchase
Subscriptions automatically renew until they are canceled. A subscription can go through the following states:
* Active: User is in good standing and has access to the subscription.
* Cancelled: User has cancelled but still has access until expiration.
* In grace period: User experienced a payment issue, but still has access while Google is retrying the payment method.
* On hold: User experienced a payment issue, and no longer has access while Google is retrying the payment method.
* Paused: User paused their access, and does not have access until they resume.
* Expired: User has cancelled and lost access to the subscription. The user is considered churned at expiration

Purchase tokens and Order IDs to be maintained as per google Guidelines
Error Handling should be done for any exception cases.

The app should be able to

Initialize a BillingClient
Establish a connection to Google Play
Show products available to buy
Launch the purchase flow
Processing purchases
Fetching purchases
Handling purchases made outside your app
Handling pending transactions
Handling Multi-quantity purchases
Sell subscriptions 
Handling the subscription lifecycle

New subscriptions
Renewals
Expirations
Cancellations
Revocations
Account hold
Grace period
Paused subscriptions
Restorations
Upgrades, downgrades, and resignups
Upgrading with free trial or intro price offers
Winback after churn
Free trials and introductory pricing
Promote the subscription
Cancel, refund, or revoke
Defer billing for a subscriber
Changing subscription prices
Launch a price change confirmation flow
Handle user confirmation of the price change
Handle when a price change is declined
Accidental price change
Doing two price changes in a row
Handling payment declines
Promo codes 
One-time use codes
Custom codes
Creating and managing promotions
User redemption flow
Implementing promo codes
Deep link
Testing promo codes

Test Google Play Billing Library integration 
Test subscription-specific features

And launch it in the play store.

Please read and understand the requirement before bidding.
Related categories: PHP Android Laravel Google Firebase