super_easy_in_app_purchase 0.1.4 copy "super_easy_in_app_purchase: ^0.1.4" to clipboard
super_easy_in_app_purchase: ^0.1.4 copied to clipboard

unlistedoutdated

A flutter plugin for creating in app purchase on Android/iOS in a super simple way.

super_easy_in_app_purchase #

A flutter plugin for creating in app purchase in a super simple way.

In App Purchase(IAP) is a very complicated thing to implement in any mobile app for many years. Generally, it takes about 200 lines of code just to implement in app purchase. But I have tried my best to make it as simple as possible using this plugin.

Please support me via Donation. Your donation seriously motivates me to build many useful plugins like this.

How to use #

Step 1: #

First add this package in your pubspec.yaml file:

dependencies:
  flutter:
    sdk: flutter
  super_easy_in_app_purchase: any

Make sure to GET all the pub packages after saving this file.

Step 2 #

Create in app product in your google play account and app store account. Follow the links for more detail steps:

Creating In App Product in Google Play Store

Creating In App Product in Apple App Store

Step 3 #

Call the static start() method in your main() function:

import 'package:super_easy_in_app_purchase/super_easy_in_app_purchase.dart';

void main() {
  SuperEasyInAppPurchase.start();
  runApp(MyApp());
}

Step 4 #

Create a class level variable (e.g. inAppPurchase) in your State class in stateful widget

import 'package:super_easy_in_app_purchase/super_easy_in_app_purchase.dart';
...

class _MyAppState extends State<MyApp> {
  SuperEasyInAppPurchase inAppPurchase;
  ...

Step 5 #

Initialise that variable in initState() method

This is the most important and difficult step to understand.

@override
void initState() {
  super.initState();
  inAppPurchase = SuperEasyInAppPurchase(
    // Any of these function will run when its corresponding product gets purchased successfully
    // For simplicity, only a message is printed to console
    whenSuccessfullyPurchased: <String, Function>{
      'product1': () => print('Product 1 purchased!'),
      'product2': () async => print('product 2 activated!'),
      'product3': () {},
    },

    // Any of these function will run when its corresponding product gets refunded
    whenUpgradeDisabled: <String, Function>{
      'product1': () async => print('Product 1 refunded !'),
      'product2': () => print('product 2 deactivated !'),
    },
  );
}

SuperEasyInAppPurchase() constructor takes two parameters:

(i) whenSuccessfullyPurchased: It takes a Map<String, Function>. Each pair in this map represents a Product ID (String) and its corresponding function, which gets executed after successful purchase. These functions generally contains shared preferences data modifications.

(ii) whenUpgradeDisabled: This also takes Map<String, Function> but this time, these functions will get executed when the product is refunded. So these function's main task is to disable the corresponding product. This parameter is optional but recommended.

Step 6 #

Prevent memory leaks by calling stop() method in your App State's dispose() method:

@override
void dispose() {
  inAppPurchase.stop();
  super.dispose();
}

Step 7 #

Start a purchase

Write this line of code in your button's onPressed listener:

await inAppPurchase.startPurchase('product1');

or if your product is consumable, then use:

await inAppPurchase.startPurchase('product1', isConsumable: true);

Note: Consumables are those products which needs to be purchased again and again, e.g. - The fuel of racing car. By default, isConsumable parameter is set to false.

Step 8 (Optional) #

Consume(disable) the purchase

In order to remove the purchase, use:

await inAppPurchase.consumePurchase('product1');

When you consume a purchase, the user has to purchase it again in order to use its features.

Other useful packages #

References #

Issues #

Don't hesitate to email any issues or feature at riturajshakti@gmail.com.

Want to contribute #

Please support me via Donation. Your donation seriously motivates me to develop more useful packages like this.

Author #

This flutter plugin is developed by Rituraj Shakti. You can contact me at riturajshakti@gmail.com

13
likes
0
points
58
downloads

Publisher

unverified uploader

Weekly Downloads

A flutter plugin for creating in app purchase on Android/iOS in a super simple way.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

collection, flutter, in_app_purchase, in_app_purchase_android

More

Packages that depend on super_easy_in_app_purchase

Packages that implement super_easy_in_app_purchase