Implementing In-App Billing in .NET MAUI
In-app purchases look simple — “user taps button, purchase succeeds” — but production billing means security, synchronization, entitlements, and platform abstraction. This guide designs a scalable billing layer for MAUI that keeps store complexity out of your UI.
What you’ll learn
- How Google Play Billing, StoreKit, and the Microsoft Store differ, and why you should never call store APIs directly from the UI
- A layered architecture: UI →
IInAppBillingService→ platform providers, usingPlugin.InAppBilling - Handling the three product types — consumables, non-consumables, and subscriptions
- Wiring the billing service into MAUI dependency injection and a
StoreViewModel - Why local validation is dangerous and how to do proper server-side receipt validation for iOS and Android
- Restoring purchases, managing entitlements, offline strategies, and common pitfalls like blocking the UI thread or forgetting
DisconnectAsync()
A great reference if monetization is on your roadmap and you want to get the architecture right the first time.