An in-app-billing extension to monetize your app products using google play store billing library 7.0.0.
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.
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.
This event will be triggered when the extension got any error while doing any billing operation.
Closes the connection and releases all held resources such as service connections.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/end-connection.png)
Checks if the client is currently connected to the service, so that requests to other methods will succeed.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/is-ready.png)
If feature is not supported then return false.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/is-subscription-supported.png)
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/product-type.png)
If you've enabled in-app messaging, Google Play will show users messaging during grace period and account hold once per day and provide them an opportunity to fix their payment without leaving the app. We recommend that you call this API whenever the user opens the app to determine whether the message should be shown. If the user successfully recovered their subscription, you will receive purchase token. You should then use this purchase token to call the Google Play Developer API and refresh the subscription status in your app.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/in-app-message-demo.jpg)
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/show-in-app-message.png)
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.
Performs a network query the details of products available for sale in your app. Watch demo block for better understanding.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/get-product-details.png)
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.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/get-multiple-product-details.png)
You can get productDetails from GotProductDetails event.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/get-offer-token.png)
Initiates the billing flow for an in-app purchase or subscription. You can get productDetails from GotProductDetails event.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/launch-billing-flow.png)
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.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/launch-billing-flow-with.png)
Initiates the billing flow for bundle of in-app purchase or subscription. You can get productDetailsList from GotMultipleProductDetails event.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/launch-bundle-billing-flow.png)
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/Bundle%20Billing%20Flow%20Demo.jpg)
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.
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.
Get purchase object from GotPurchase event.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/get-purchase-details.png)
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.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/consume.png)
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.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/consume-with.png)
To acknowledge non-consumable purchases, use this function. Get purchase object from GotPurchase event.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/acknowledge.png)
To acknowledge non-consumable purchases, use this function. Use purchase token to acknowledge the purchase. Get purchaseToken from GotPurchaseDetails event.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/acknowledge-with.png)
Fetch for a user’s subscription purchases. Returns only active subscriptions and non-consumed one-time purchases.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/query-purchases.png)
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.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/is-purchased.png)
Returns the most recent purchase made by the user for each product, even if that purchase is expired, canceled, or consumed.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/get-purchases-history.png)
- If you're facing any issues, please submit your issues here → Submit Issues
Testing & Live Videos
Pay2Me.mp4
Pay2Me.-.Live.Purchasing.-.In.App.Billing.Library.5.-.Google.Play.Billing.-.Kodular.-.Niotron.-.Mit.mp4
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/Purchases-history.jpeg)
Example blocks
This is very simple example blocks for using this extension.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/single-in-app-demo.png)
Getting multiple products in single request.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/multiple-in-app-demo.png)
Purchasing bundle of product using GetMultipleProductDetails and LaunchMultipleBillingFlow.
![](https://github.com/jewelshkjony/GooglePlayBilling/raw/main/images/multiple-billing-flow-demo.png)
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.
● has been deprecated and will be removed in a future release.LaunchPriceChangeFlow
● Removed , 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.setVrPurchaseFlow
com.jewel.googleplaybilling.aix (567 KB)
💰 Price: $12 USD
⚙️ SDK Version: 7.0.0
🌎 Last amendment: 01 July 2024
⚖️ License: Terms & Conditions
🤝 Supported builder: Kodular, Niotron, AppZard, AndroidBuilder, App Inventor and it's other distributions.
Discord | Telegram | WhatsApp | Facebook | Messenger | Youtube