In-app Purchases Made Easy
npm install native-purchases
npx cap sync
Add this to manifest
<uses-permission android:name="com.android.vending.BILLING" />
restorePurchases() => any
Restores a user's previous and links their appUserIDs to any user's also using those .
Returns: any
purchaseProduct(options: { productIdentifier: string; planIdentifier?: string; productType?: PURCHASE_TYPE; quantity?: number; }) => any
Started purchase process for the given product.
Param | Type | Description |
---|---|---|
options |
{ productIdentifier: string; planIdentifier?: string; productType?: PURCHASE_TYPE; quantity?: number; } |
- The product to purchase |
Returns: any
getProducts(options: { productIdentifiers: string[]; planIdentifier?: string; productType?: PURCHASE_TYPE; }) => any
Gets the product info associated with a list of product identifiers.
Param | Type | Description |
---|---|---|
options |
{ productIdentifiers: {}; planIdentifier?: string; productType?: PURCHASE_TYPE; } |
- The product identifiers you wish to retrieve information for |
Returns: any
isBillingSupported() => any
Check if billing is supported for the current device.
Returns: any
getPluginVersion() => any
Get the native Capacitor plugin version
Returns: any
Prop | Type | Description |
---|---|---|
activeSubscriptions |
[string] |
Set of active subscription skus |
allPurchasedProductIdentifiers |
[string] |
Set of purchased skus, active and inactive |
nonSubscriptionTransactions |
{} |
Returns all the non-subscription a user has made. The are ordered by purchase date in ascending order. |
latestExpirationDate |
string | null |
The latest expiration date of all purchased skus |
firstSeen |
string |
The date this user was first seen in RevenueCat. |
originalAppUserId |
string |
The original App User Id recorded for this user. |
requestDate |
string |
Date when this info was requested |
originalApplicationVersion |
string | null |
Returns the version number for the version of the application when the user bought the app. Use this for grandfathering users when migrating to subscriptions. This corresponds to the value of CFBundleVersion (in iOS) in the Info.plist file when the purchase was originally made. This is always null in Android |
originalPurchaseDate |
string | null |
Returns the purchase date for the version of the application when the user bought the app. Use this for grandfathering users when migrating to subscriptions. |
managementURL |
string | null |
URL to manage the active subscription of the user. If this user has an active iOS subscription, this will point to the App Store, if the user has an active Play Store subscription it will point there. If there are no active subscriptions it will be null. If there are multiple for different platforms, it will point to the device store. |
Prop | Type | Description |
---|---|---|
transactionId |
string |
RevenueCat Id associated to the transaction. |
Prop | Type | Description |
---|---|---|
identifier |
string |
Product Id. |
description |
string |
Description of the product. |
title |
string |
Title of the product. |
price |
number |
Price of the product in the local currency. |
priceString |
string |
Formatted price of the item, including its currency sign, such as €3.99. |
currencyCode |
string |
Currency code for price and original price. |
currencySymbol |
string |
Currency symbol for price and original price. |
isFamilyShareable |
boolean |
Boolean indicating if the product is sharable with family |
subscriptionGroupIdentifier |
string |
Group identifier for the product. |
subscriptionPeriod |
SubscriptionPeriod |
The Product subcription group identifier. |
introductoryPrice |
SKProductDiscount | null |
The Product introductory Price. |
discounts |
{} |
The Product discounts list. |
Prop | Type | Description |
---|---|---|
numberOfUnits |
number |
The Subscription Period number of unit. |
unit |
number |
The Subscription Period unit. |
Prop | Type | Description |
---|---|---|
identifier |
string |
The Product discount identifier. |
type |
number |
The Product discount type. |
price |
number |
The Product discount price. |
priceString |
string |
Formatted price of the item, including its currency sign, such as €3.99. |
currencySymbol |
string |
The Product discount currency symbol. |
currencyCode |
string |
The Product discount currency code. |
paymentMode |
number |
The Product discount paymentMode. |
numberOfPeriods |
number |
The Product discount number Of Periods. |
subscriptionPeriod |
SubscriptionPeriod |
The Product discount subscription period. |
Members | Value | Description |
---|---|---|
INAPP |
"inapp" |
A type of SKU for in-app products. |
SUBS |
"subs" |
A type of SKU for subscriptions. |
The @capgo/native-purchases package is a plugin for Capacitor that provides easy in-app purchase functionality. In this tutorial, we will walk through the steps of installing and using the package in your Capacitor project.
To install the @capgo/native-purchases package, open your terminal and run the following command:
npm install native-purchases
npx cap sync
This will install the package and sync the native files with your project.
If you are using Android, you need to add some configuration to your AndroidManifest.xml file. Open the file located at android/app/src/main/AndroidManifest.xml
and add the following code:
<!-- Add any necessary configuration here -->
If you are using iOS, no further steps are needed.
The @capgo/native-purchases package provides several methods for handling in-app purchases. Here are some examples of how to use these methods:
To restore a user's previous purchases, use the restorePurchases()
method:
import { nativePurchases } from '@capgo/native-purchases';
nativePurchases.restorePurchases();
To initiate a purchase for a specific product, use the purchaseProduct()
method:
import { nativePurchases } from '@capgo/native-purchases';
nativePurchases.purchaseProduct({ productIdentifier: 'com.example.product' });
To retrieve information about a specific product, use the getProducts()
method:
import { nativePurchases } from '@capgo/native-purchases';
nativePurchases.getProducts({ productIdentifiers: ['com.example.product'] });
These are just a few examples of how to use the @capgo/native-purchases package. For more detailed information on the available methods and their parameters, refer to the package documentation.
In this tutorial, we covered the installation process and basic usage of the @capgo/native-purchases package. By following the steps outlined here, you should be able to integrate in-app purchasing functionality into your Capacitor project.