Modern async/await In-App Purchases for Unity 6 with 5 receipt validation strategies, typed error handling, AES-encrypted storage, interface-based DI-ready architecture. Zenject & VContainer supportedYa.AsyncIAP - Modern In-App Purchases for Unity 6Ya.AsyncIAP is a production-ready In-App Purchasing framework for Unity 6. Built around C# async/await and strongly-typed exceptions, it features a clean, interface-based architecture that easily plugs into any DI container or works directly via a simple facade. AsyncIAP supports all purchase types, including subscriptions, and ensures secure transactions with 6 built-in receipt validation strategies.★ FEATURES ★6 Receipt Validation Strategies - The only IAP asset on the store with Local (RSA), Google Play Developer API v3, iOS verifyReceipt, Server, and Composite (chain multiple) validation built-in. Protect your revenue from fraud without depending on third-party dashboards.Async/Await API - No callbacks, no coroutines, no event pyramid. Initialize, fetch products, purchase, validate, grant rewards - all with readable awaitable tasks. Supports CancellationToken end-to-end.Stromgly-Typed Error Handling - Every failure throws a typed exception with a strict reason enum. Silently ignore user cancellations, show the right dialog for "payment declined", log fraud attempts - all with clean C# when-filters instead of parsing error strings.Drop-In UI Button - Attach AsyncIapButtonScript to any UGUI Button, set the product ID in the Inspector, wire up UnityEvents (OnStatusChanged, OnProductReceived, OnGrantReward, OnError). The entire task of working with IAP is given to the script.Interface-Based DI-Reddy Architecture - Every layer (logging, storage, crypto, store, validation, purchases, manager) is an interface. Use the AsyncIapMobile static facade for quick projects, or inject IAsyncIapMobileManager via Zenject / VContainer for testable, modular codebases. Swap any single module with your own implementation without touching the rest.AES-Encrypted Secure Local Storage - Purchases can be stored encrypted on your device.Automatic Pending Order Recovery - Handles interrupted purchases on next launch. If the app was killed mid-transaction, ConfirmPendingPurchasesAsync re-validates, grants the reward, and confirms with the store.Full Unit Test Suite - Every service is covered by tests;Ask-to-Buy flow - Full support for iOS/macOS deferred transactions.★ SUPPORTED PLATFORMS ★iOS (App Store)Android (Google Play)macOS (Mac App Store)tvOS★ WHAT'S INCLUDED ★Full C# source code (clean, modular, XML-documented)Static facade (AsyncIapMobile) and DI-friendly manager (IAsyncIapMobileManager)6 receipt validators (Local, Google Play API, iOS verifyReceipt, Server,Composite) — all behind a single interfaceAES-encrypted secure purchases repositoryDrop-in UGUI button component (AsyncIapButtonScript)Editor Window for keys, product IDs and test purchases5 sample scenes covering every product typeUnit tests and test helpersDocumentation: README, DependencyInjection guide, ReceiptValidation guide★ REQUIREMENTS ★Unity 6.3 LTS or newerUnity In-App Purchasing package (auto-installed)Active Unity Developer account (for Unity Gaming Services)Optional: Zenject or VContainer if you want DIBuilt with ❤ for developers who want their monetization code to be as cleanas the rest of their game.Unity: 6000.0+ or newerPackage format: UPM (Unity Package Manager)Dependencies:- com.unity.purchasing (Unity In-App Purchasing)- com.unity.services.core (Unity Services Core)Optional dependencies: Zenject, VContainer (DI - both supported, neither required)Platforms: iOS, Android, macOS, tvOS (Editor Play Mode fully supported via Unity's fake store)Async model: C# async/await with CancellationToken end-to-endThread safety: Semaphore-gated concurrent operations; store event handlers run on Unity's main threadStorage: AES-encrypted JSON, key sealed via platform secure storageReceipt validation: RSA (Google), iOS verifyReceipt, Google Play Developer API v3, Server, Composite - all IAsyncIapReceiptValidatorError model: typed exceptions derived from AsyncIapException, with strict reason enums.Testing: NUnit test suite covering Manager, PurchasesService, StoreService and SecurePurchasesRepository. Stubs for Unity IAP types included.Source: 100% C#, fully editable, no DLLs, no obfuscation



