Need help upgrading to Ionic Framework 4.0? Get assistance with our Enterprise Migration Services EXPLORE NOW

In App Purchase

Improve this doc

A lightweight Cordova plugin for in app purchases on iOS/Android.

Repo: https://github.com/AlexDisler/cordova-plugin-inapppurchase

Installation

  1. Install the Cordova and Ionic Native plugins:
    $ ionic cordova plugin add cordova-plugin-inapppurchase
    $ npm install --save @ionic-native/in-app-purchase@4
    
  2. Add this plugin to your app's module

Supported platforms

Usage

import { InAppPurchase } from '@ionic-native/in-app-purchase';

constructor(private iap: InAppPurchase) { }

...

this.iap
 .getProducts(['prod1', 'prod2', ...])
 .then((products) => {
   console.log(products);
    //  [{ productId: 'com.yourapp.prod1', 'title': '...', description: '...', price: '...' }, ...]
 })
 .catch((err) => {
   console.log(err);
 });


this.iap
  .buy('prod1')
  .then((data)=> {
    console.log(data);
    // {
    //   transactionId: ...
    //   receipt: ...
    //   signature: ...
    // }
  })
  .catch((err)=> {
    console.log(err);
  });

Instance Members

getProducts(productId)

Retrieves a list of full product data from Apple/Google. This method must be called before making purchases.

Param Type Details
productId array<string>

an array of product ids.

Returns: Promise<any> Returns a Promise that resolves with an array of objects.

buy(productId)

Buy a product that matches the productId.

Param Type Details
productId string

A string that matches the product you want to buy.

Returns: Promise<{transactionId: string, receipt: string, signature: string, productType: string}> Returns a Promise that resolves with the transaction details.

subscribe(productId)

Same as buy, but for subscription based products.

Param Type Details
productId string

A string that matches the product you want to subscribe to.

Returns: Promise<{transactionId: string, receipt: string, signature: string, productType: string}> Returns a Promise that resolves with the transaction details.

consume(productType, receipt, signature)

Call this function after purchasing a “consumable” product to mark it as consumed. On Android, you must consume products that you want to let the user purchase multiple times. If you will not consume the product after a purchase, the next time you will attempt to purchase it you will get the error message:

Param Type Details
productType string
receipt string
signature string

Returns: Promise<any>

restorePurchases()

Restore all purchases from the store

Returns: Promise<any> Returns a promise with an array of purchases.

getReceipt()

Platforms:iOS 

Get the receipt.

Returns: Promise<string> Returns a promise that contains the string for the receipt

Advanced

// fist buy the product...
this.iap
  .buy('consumable_prod1')
  .then(data => this.iap.consume(data.productType, data.receipt, data.signature))
  .then(() => console.log('product was successfully consumed!'))
  .catch( err=> console.log(err))

API

Native

General