Alternatives To Flutter_iap
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Flutter_inapp_purchase513425 days ago101June 11, 20224mitDart
(Sun Rised!) Flutter plugin for In App Purchase.
Inappbillingplugin44937a month ago69May 11, 202216mitC#
Cross-platform In App Billing Plugin for Xamarin
14 years ago8January 17, 201916mitSwift
Flutter iap plugin
Hms Cordova Plugin80
a month ago10April 29, 20226apache-2.0Java
This repo contains all of Cordova HMS plugins.
Plugin X70
6 years ago53Objective-C
Plugin-x is the plugin repository for cocos2d-x, it also provides a unified API for plugins.
Adaptysdk Unity27
21 days ago1mitC#
Unity SDK for growing mobile in-app purchases
Atomic Plugins Inapps24
5 years ago6August 21, 20187mpl-2.0Java
Atomic Plugins for InApps
Unity Ios Inapppurchase9
a month agootherObjective-C++
Unity implements Apple's in-app purchases for iOS. ( Unity实现苹果iOS的应用内购买 )
Cordova Plugin Payment Iap9
7 years ago16otherJava
Sdkbox Cordova Plugin Iap4
7 years agoJavaScript
Alternatives To Flutter_iap
Select To Compare

Alternative Project Comparisons


Add In-App Payments to your Flutter app with this plugin.

  • You can retrieve a list of previously purchased IAP product IDs (only Android)
  • You can fetch IAP products from Google Play and App Store
  • You can buy an IAP product
  • You can consume a IAP product (only Android)
  • You can restore purchases from App Store (only iOS)

Getting Started

For help getting started with Flutter, view our online documentation.

For help on editing plugin code, view the documentation.


Add flutter_iap as a dependency in pubspec.yaml

For help on adding as a dependency, view the documentation.


Note: You must set up billing information in your developer account corresponding with the platform you are testing (iTunes Connect / Google Play Console)

import 'package:flutter/material.dart';
import 'package:flutter_iap/flutter_iap.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  _MyAppState createState() => _MyAppState();

class _MyAppState extends State<MyApp> {
  List<String> _productIds = [];
  List<String> _alreadyPurchased = [];

  initState() {

  init() async {
    // Android testers: You can use "android.test.purchased" to simulate a successful flow.
    List<String> productIds = ["com.example.testiap"];

    IAPResponse products = await FlutterIap.fetchProducts(productIds);
    if (products.status != IAPResponseStatus.ok) {
      print("Products not retrieved, error: ${products.status}");

    IAPResponse purchased = await FlutterIap.fetchInventory();
    if (purchased.status != IAPResponseStatus.ok) {
      print("Inventory not retrieved, error: ${purchased.status}");

    productIds = products.products
        .map((IAPProduct product) => product.productIdentifier)

    List<String> purchasedIds = purchased.purchases
        .map((IAPPurchase purchase) => purchase.productIdentifier)

    if (!mounted) return;

    setState(() {
      _productIds = productIds;
      _alreadyPurchased = purchasedIds;

  Widget build(BuildContext context) {
    String nextPurchase = _productIds.firstWhere(
      (id) => !_alreadyPurchased.contains(id),
      orElse: () => null,

    List<Text> list = [];
    _alreadyPurchased.forEach((productId) {

    if (list.isEmpty) {
      list.add(Text("No previous purchases found."));
    } else {
      list.insert(0, Text("Already purchased:"));

    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text("flutter_iap example app"),
        body: Center(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
                    ? "Available Products to purchase: $_productIds"
                    : "Not working?\n"
                    "Check that you set up in app purchases in\n"
                    "iTunes Connect / Google Play Console",
                textAlign: TextAlign.center,
                textScaleFactor: 1.25,
              SizedBox(height: 24.0),
        floatingActionButton: nextPurchase != null
            ? FloatingActionButton(
                child: Icon(Icons.monetization_on),
                onPressed: () async {
                  IAPResponse response = await FlutterIap.buy(nextPurchase);
                  if (response.purchases != null) {
                    List<String> purchasedIds = response.purchases
                        .map((IAPPurchase purchase) =>

                    setState(() {
                      _alreadyPurchased = purchasedIds;
            : Container(),


This project welcomes PRs to fix issues and improve functionality.

To get started, clone the git repository to a local directory (flutter_iap), and run:

$ flutter create --template=plugin --ios-language=swift .

You can then use flutter run as usual in the example directory to get started.

Popular Plugin Projects
Popular Iap Projects
Popular Libraries Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.