[PAID] :google_play: InApp Billing Library : Advance Billing Extension (V7.1.1) 🔥

An in-app-billing extension to monetize your app products using google play store billing library.


0ba298a3390a4fe27396a1bdf0a4ced143bfcdce

:receipt: Extension Specifications ↓


:floppy_disk: Size: 565.31 KB
:moneybag: Price: $12 USD
:android: SDK Version: 7.1.1 (Latest)
:earth_asia: Released On: 2021-10-29T18:00:00Z
:earth_asia: Updated On: 2024-10-30T18:00:00Z
:computer: Built using: FAST
:smiley: Meet happy users: See post #7
:credit_card: Payment methods: Direct Download | PayPal | Skrill | TransferWise (Wise) | Xoom | Airtm | Binance | Crypto | Pyypl | Card Payment | UPI (:india:) | JazzCash (:pakistan:) | Bkash (:bangladesh:)


NOTE: Paid user will be available to get MINOR SDK updates totally free.

Reminder: Starting on August 2, 2023, all new apps must use Billing Library version 5 or newer. By November 1, 2023, all updates to existing apps must use Billing Library version 5 or newer. Learn more.


:globe_with_meridians: Start Connection


You must use this function to starts up BillingClient setup process asynchronously.

BillingServiceConnected: SDK is ready run any billing operation.
BillingServiceDisconnected: SDK is disconnected from billing service.


:x: Billing Service Error


This event will be triggered when the extension got any error while doing any billing operation.

image

  • function Name → It’s return the name of function which got error.
  • error Message → It’s return the error message as string.

:stop_sign: End Connection


Closes the connection and releases all held resources such as service connections.


:star: Is Ready


Checks if the client is currently connected to the service, so that requests to other methods will succeed.


:star: Is Feature Supported


If feature is not supported then return false.


:star: Product Type


image


:speech_balloon: Show In App Messages


inappmessage

The subscription status changed. For example, a subscription has been recovered from a suspend state. Developers should expect the purchase token to be returned with this response code and use the purchase token with the Google Play Developer API.

  • purchaseToken → It’s return the purchase token as string.
  • response Code → It’s return the response code as integer.

:star: Get Product Details


Performs a network query the details of products available for sale in your app. Watch demo block for better understanding.

image

image

image

  • name → It’s return the name of product as string.
  • title → It’s return the title of product as string.
  • product Id → It’s return the given product id string.
  • productType → It’s return the type of product string.
  • description → It’s return the description of product as string.
  • price → It’s return the formatted price of product as string.
  • productDetails → It’s return the object of ProductDetails.
  • response Code → It’s return the response code as integer.
  • reason → It’s return the reason for error as string.
  • message → It’s return the details error message as string.

:star: Get Multiple Product Details


Performs a network query the details of products available for sale in your app. Set productIds and productTypes as list. Watch demo block for better understanding.

  • names → It’s return the names of products as list of string.
  • titles → It’s return the titles of product as list of string.
  • productIds → It’s return the given products ids list of string.
  • productTypes → It’s return the types of products list of string.
  • descriptions → It’s return the descriptions of products as list of string.
  • prices → It’s return the formatted price of product as list of string.
  • productDetailsList → It’s return the objects of ProductDetails as list.
  • response Code → It’s return the response code as integer.
  • reason → It’s return the reason for error as string.
  • message → It’s return the details error message as string.

:tickets: Get Offer Token


You can get productDetails from GotProductDetails event.


:heavy_dollar_sign: Launch Billing Flow


Initiates the billing flow for an in-app purchase or subscription. You can get productDetails from GotProductDetails event.

  • purchase → It’s return the object of Purchase. Use this purchase object to Consume or Acknowledge this purchase.
  • response Code → It’s return the response code as integer.
  • reason → It’s return the reason for error as string.
  • message → It’s return the details error message as string.


:heavy_dollar_sign: Launch Billing Flow With


Initiates the billing flow for an in-app purchase or subscription.
You can get productDetails from GotProductDetails event.
isOfferPersonalized: The Google Play purchase screen indicating that the price was customized for the user.

image

  • purchase → It’s return the object of Purchase. Use this purchase object to Consume or Acknowledge this purchase.
  • response Code → It’s return the response code as integer.
  • reason → It’s return the reason for error as string.
  • message → It’s return the details error message as string.

:moneybag: Launch Bundle Billing Flow


Initiates the billing flow for bundle of in-app purchase or subscription.
You can get productDetailsList from GotMultipleProductDetails event.

image

image

  • purchase → It’s return the object of Purchase. Use this purchase object to Consume or Acknowledge this purchase.
  • response Code → It’s return the response code as integer.
  • reason → It’s return the reason for error as string.
  • message → It’s return the details error message as string.


:repeat: Launch Subscription Update Flow

Update purchase flow for in-app subscription product to update it’s billing cycle or launch for price change. You need to set the old purchase token to update the product with new prices. You can store the old purchase token locally or into your own server for later use.


:money_with_wings: User Selected Alternative Billing


This event will be triggered when South Korean user select alternative billing option during payment time.
Method to allow users in South Korea to select an alternative billing option.
Enables the ability for users to select an alternative billing option during the purchase flow.


:receipt: Get Purchase Details

Get purchase object from GotPurchase event.


  • orderId → It’s return the order id from the purchase as string.
  • isAcknowledge → It’s return true if the purchase is acknowledged, otherwise false.
  • isAutoRenewing → It’s return true if product is auto renewable.
  • purchaseTime → It’s return the time of purchase as long.
  • purchaseToken → It’s return the purchase token as string.
  • json → It’s return the json of the purchase object as string.

:star: Consume


For consumables, this method fulfills the acknowledgement requirement and indicates that your app has granted entitlement to the user. This method also enables your app to make the one-time product available for purchase again.
Get purchase object from GotPurchase event.

  • token → It’s return the purchase token as string.
  • response Code → It’s return the response code as integer.
  • reason → It’s return the reason for error as string.
  • message → It’s return the details error message as string.

:star: Consume With


For consumables, this method fulfills the acknowledgement requirement and indicates that your app has granted entitlement to the user. This method also enables your app to make the one-time product available for purchase again. Use purchase token to consume the purchase. Get purchaseToken from GotPurchaseDetails event.

  • token → It’s return the purchase token as string.
  • response Code → It’s return the response code as integer.
  • reason → It’s return the reason for error as string.
  • message → It’s return the details error message as string.

:star: Acknowledge


To acknowledge non-consumable purchases, use this function.
Get purchase object from GotPurchase event.

  • token → It’s return the purchase token as string.
  • response Code → It’s return the response code as integer.
  • reason → It’s return the reason for error as string.
  • message → It’s return the details error message as string.

:star: Acknowledge With


To acknowledge non-consumable purchases, use this function. Use purchase token to acknowledge the purchase. Get purchaseToken from GotPurchaseDetails event.

  • token → It’s return the purchase token as string.
  • response Code → It’s return the response code as integer.
  • reason → It’s return the reason for error as string.
  • message → It’s return the details error message as string.

:star: Query Purchases


Fetch for a user’s subscription purchases. Returns only active subscriptions and non-consumed one-time purchases.

  • productIds → It’s return products ids as list of string.
  • purchasesState → It’s return purchases states as list of integer. (0 == UNSPECIFIED_STATE, 1 == PURCHASED and 2 == PENDING).
  • purchasesToken → It’s return purchases token as list of string.
  • orderIds → It’s return order ids as list of string.
  • purchasesList → It’s return the purchase object as list.
  • size → It’s return the size of list as integer.
  • response Code → It’s return the response code as integer.
  • reason → It’s return the reason for error as string.
  • message → It’s return the details error message as string.

:white_check_mark: Is Purchased


Get purchasesList from QueryPurchasesSuccess event.
Now you can check that product is purchased by user or not by product id. If user purchased the product then it will return true, otherwise false.


:star: Get Purchases History


Returns the most recent purchase made by the user for each product, even if that purchase is expired, canceled, or consumed.

  • quantities → It’s return quantities of purchases of product as list of integer.
  • purchaseTimes → It’s return purchase time as list of long.
  • developerPayloads → It’s return developer payloads as list of string.
  • originalJsons → It’s return json of purchase object as list of string.
  • purchaseTokens → It’s return purchases token as list of string.
  • signatures → It’s return signatures as list of string.
  • productIds → It’s return products ids as list of string.
  • size → It’s return the size of list as integer.
  • response Code → It’s return the response code as integer.
  • reason → It’s return the reason for error as string.
  • message → It’s return the details error message as string.

:tickets: Get Offer Tokens


Returns the offer token required to pass in launchBillingFlow to purchase the subscription product with these pricing phases.

blocks

  • offerTokens → It’s return the offer tokens as list.

:tickets: Get Offer Ids


Returns the offer ids associated with the subscription product.
Note: This field is only set for a discounted offer. Returns null for a regular base plan.

blocks (1)

  • offerIds → It’s return the offer ids as list.

:tickets: Get Base Plan Ids


Returns the base plan ids associated with the subscription product.

blocks (2)

  • basePlanIds → It’s return the base plan ids as list.

:tickets: Get Offer Tags


Returns the offer tags associated with this Subscription Offer.

blocks (3)

  • offerTags → It’s return the offer tags as list.

Testing & Live Videos

Purchasing test products

Purchasing Live/Real Product

Purchases Statements


Example blocks

This is very simple example blocks for using this extension.

Getting multiple products in single request.

Purchasing bundle of products using GetMultipleProductDetails and LaunchBundleBillingFlow.


➤ Release Notes ↷


7.0.0

GetPurchasesHistory has been deprecated and will be removed in a future release.
● Updated minSdkVersion to 21 and targetSdkVersion to 34.


6.1.0

● Extension size increased 187 KB.
● Added 4 new functions and events.
● Added 1 new property.


6.0.1

● Update Play Billing Library to be compatible with Android 14.


6.0.0

● Replaced ProrationMode by ReplacementMode.

● Removed order ID for PENDING purchases.
(Previously, the order ID would always be created even if the purchase was pending. Starting with version 6.0.0, an order ID will not be created for pending purchases, and for these purchases, the order ID will be populated after the purchase is moved to the PURCHASED state.)

● Added new network error response code.
(A new network error response code, NETWORK_ERROR, has been added starting with PBL version 6.0.0. This code is returned when an error occurs due to a network connection issue. These network connection errors were previously reported as SERVICE_UNAVAILABLE.)

● Added additional logging.
(The Play Billing Library 6 release includes additional logging, which provides insight into API usage (such as success and failure) and service connection issues. This information will be used to improve the performance of the Play Billing Library and provide better support for errors.)

● Extension size increased 139 KB.

● To migrate from V5 to V6
(I’ll charge very small amount for the MAJOR update only. MINOR updates will be totally free for all migrated users.)


5.2.0

● Extension size increased 149 KB.

● Added method to allow users in South Korea to select an alternative billing option.


5.1.0

● Extension size increased 11 KB.

● Added GetOfferTokens method.

● Added GetOfferIds method.

● Added GetBasePlanIds method.

● Added GetOfferTags method.


5.0.0

● Introduced a new model for subscriptions, including new entities that enable you to create multiple offers for a single subscription product.

● Added isOfferPersonalized method for EU personalized pricing disclosure requirements.

LaunchPriceChangeFlow has been deprecated and will be removed in a future release.

● Removed setVrPurchaseFlow, which was previously used when instantiating a purchase flow. In previous versions, this method redirected the user to complete the purchase on their Android device. Once you remove this method, users will complete the purchase through the standard purchase flow.


This extension is built using Rush. Used Java 8 features. Thanks @Shreyash for his powerful tool.


:github: GitHub Repository



Implementation Guide Video Series


  • If you’re facing any issues, please submit your issues here → Submit Issues

13 Likes

where’s the extension?

1 Like

@JEWEL makes you go through many loopholes in order to obtain their extensions. Check the README on GitHub.

5 Likes

Do you ensure us that you will keep updating this extension and won’t discontinue the updates?

1 Like

you Never put something free, always paid :rofl: Greeting for developer Summit and oseamiya :heart_decoration:

2 Likes

This is actually not relevant…

A new billing version is always a major update… same happened between Version 2 and 3… so it really does not matter in future to update to a version 6 by @JEWEL or someone else…

Taifun

2 Likes

:smiley: Meet Happy Users


@bidder_boons @Yash_Agarwal @Passos_0213 @Carpe_diem

Video uploaded for purchasing live/real product using the extension.

Hello friend, does this extension have the feature for monthly subscription?
If yes, will you send me an example when I buy the extension?

Instead of spamming please read the first post.

Yes subscription feature available. You’ll get demo aia after you bought this extension.

(Thanks)

Has anyone actually managed to use the extension to implement a monthly subscription on an app in the play store?
I was hoping to create a 7 day trial period that changes to a monthly subscription but i’m struggling to understand just wow much i need to do in the app and how much the play store is involved ?

Steve

Extension size is compressed to 165 KB only.

Please knock me to get updated aix.

Added new feature, now you can purchase bundle of in-app products or subscriptions in one click :heart_eyes:

1 Like

Yes, you just have to implement the subscription normally with the product id. Leave rest of the things on Google.

Now on console, there you will get an option to set the frequency of billing, set it monthly and then you can choose grace period and free trial period. That’s it :wink:

1 Like

Hey,

Got there eventually and the extension is working perfectly…
I was struggling to understand just how to implement it but Jony was incredibly helpful.
He is a star !!!
Elon would be proud of you Jony.

1 Like

I got the extension today and I’m trying to do it. I haven’t been able to do it fully yet, but the problem is with me :slight_smile: The extension is pretty well detailed and good.

1 Like

Now you can launch billing flow with multi-quantity features :fire:

excellent extension, but you do not accept paypal, I do not know the other payment methods and that generates mistrust in me.

1 Like

You can pay via xoom.com, it’s a service of Paypal.
wise.com, skrill.com are also international payment gateway.
Also crypto currency accepted via Binance.