Test Payment Flows

In-app purchases
100+
Downloads
Content rating
Everyone
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image

About this app

Github link: bit.ly/GitHub-testpayments

Simple app to test and log in-app purchase flow events, built following standard billing practices for apps that do not run their own billing server (that is, relying on Play Billing on-device APIs to query products and purchases).

Currently supporting Phone, Android TV, and Wear OS.

To use it, best practice is to test this app for a payment flow that does not work on your own app. If it works in this app, compare your code with our Github code or check our logs to identify differences; if it also fails in this app, let us know - it may be a Play billing change that breaks the flow and we may have to update the app!

Note: all transactions in this app are for test purposes only. No actual goods or services will be provided for the transactions. The terms used in the app (e.g. "Buy a rose") are merely for demonstration purposes and are not real.

Prices have been set to minimum needed to pass Play Console requirements to minimize cost to test using this app.
Most are USD $0.49 or equivalent due to the minimum requirement (may differ in some countries due to a different minimum requirement).

Purchase flows have been verified as of release time. It will also be constantly updated to catch up with required billing changes at our best effort. More to cross-validate if you find payments in your own app is failing for unknown reasons.

Can test in-app products as well as subscriptions (remember to cancel it after your test!). Also provides logs to indicate events during the payment flow.

Key implementation details as of this moment:

1. Make sure you handle your purchases (acknowledge, and consume if applicable) when you receive a successful response in onPurchasesUpdated in PurchasesUpdatedListener

2. Make sure you also query user's purchases (queryPurchasesAsync) on your app's onResume() calls (or equivalent if onResume() is not a proper place), examine each purchase's acknowledgement status, and acknowledge them if they haven't been successfully acknowledged.

- Also consume the consumables if it is already acknowledged but still included in the response (which means it was not successfully consumed)

3. Update the UI to reflect the new changes from billing response accordingly.

4. Be aware that watch screens may go off pretty soon, potentially delaying onPurchasesUpdated() etc due to the app not actively running or receiving events when a payment was completed. And when you wake up the screen, both onPurcahsesUpdated() and the queryPurchasesAsync() in onResume() may fire at almost the same time (so make sure to check for race conditions).

5. Be aware that purchases not acknowledged within 72 hours would automatically get refunded.
Updated on
Jul 10, 2024

Data safety

Safety starts with understanding how developers collect and share your data. Data privacy and security practices may vary based on your use, region, and age. The developer provided this information and may update it over time.
No data shared with third parties
Learn more about how developers declare sharing
No data collected
Learn more about how developers declare collection

What's new

Update library versions