cordova-plugin-storekit2-aj
v1.0.0
Published
A simple Cordova plugin for iOS In-App Purchases using StoreKit 2
Maintainers
Readme
cordova-plugin-storekit2-aj
A simple Cordova plugin for iOS In-App Purchases using StoreKit 2.
No receipt validation server needed. Uses Transaction.currentEntitlements to check subscription ownership locally on-device.
Requirements
- iOS 15.0+
- Cordova iOS platform
- Swift support (added automatically via dependency)
Installation
cordova plugin add cordova-plugin-storekit2-ajAPI
StoreKit2.getProduct(productId, success, error)
Fetches product details from the App Store.
StoreKit2.getProduct("your_product_id", function(product) {
console.log(product.title); // "My Subscription"
console.log(product.price); // "$4.99"
console.log(product.description); // "Unlock all features"
console.log(product.priceValue); // 4.99
}, function(err) {
console.error(err);
});StoreKit2.purchase(productId, success, error)
Initiates a purchase. Shows the App Store purchase dialog.
StoreKit2.purchase("your_product_id", function(transaction) {
console.log(transaction.transactionId);
console.log(transaction.purchaseDate);
console.log(transaction.expiresDate);
localStorage.appVersion = "full";
}, function(err) {
if (err === "USER_CANCELED") {
// User tapped cancel
} else {
alert("Purchase failed: " + err);
}
});StoreKit2.isOwned(productId, success, error)
Checks if the user currently owns/has an active subscription. No server needed.
StoreKit2.isOwned("your_product_id", function(result) {
if (result.owned) {
localStorage.appVersion = "full";
console.log("Expires: " + result.expiresDate);
} else {
localStorage.appVersion = "free";
}
}, function(err) {
console.error(err);
});StoreKit2.restorePurchases(success, error)
Syncs purchases with the App Store. May prompt for Apple ID sign-in.
StoreKit2.restorePurchases(function() {
StoreKit2.isOwned("your_product_id", function(result) {
if (result.owned) {
localStorage.appVersion = "full";
alert("Subscription restored!");
} else {
alert("No active subscription found.");
}
}, function(err) {
console.error(err);
});
}, function(err) {
alert("Restore failed: " + err);
});How it works
This plugin uses StoreKit 2 which:
- Doesn't need a receipt validation server —
Transaction.currentEntitlementsgives you verified ownership status locally - Automatically finishes transactions — no more unfinished transactions piling up in the queue
- Handles renewals and cancellations —
isOwned()always reflects the current subscription state - No login prompts on app launch —
isOwned()reads from local data without contacting Apple
License
MIT
