Petunjuk
Tutorial Pembelian Nativ
Menggunakan @capgo/native-purchases
Langganan Aplikasi yang Mudah.
Pasang
bun add @capgo/native-purchases
bunx cap sync
Apa yang Dikembangkan oleh Plugin Ini
restorePurchases- Mengembalikan pengguna sebelumnya dan menghubungkan ID pengguna aplikasi mereka ke pengguna mana pun yang juga menggunakan ID pengguna yang sama.getAppTransaction- Mendapatkan Informasi Transaksi Aplikasi, yang menyediakan detail tentang kapan pengguna pertama kali mengunduh atau membeli aplikasi.isEntitledToOldBusinessModel- Membandingkan versi aplikasi asli dari Transaksi Aplikasi dengan versi target untuk menentukan apakah pengguna berhak atas fitur dari model bisnis sebelumnya.getProducts- Mengambil metadata produk toko, termasuk istilah harga langganan iOS yang didukung.purchaseProduct- Membuka proses pembelian untuk produk dan rencana tagihan yang dipilih.
Contoh Penggunaan
restorePurchases
Mengembalikan data pengguna sebelumnya dan menghubungkan ID pengguna aplikasi mereka ke ID pengguna siapa pun yang juga menggunakan ID tersebut.
import { NativePurchases } from '@capgo/native-purchases';
await NativePurchases.restorePurchases();
getAppTransaction
Mengambil informasi Transaksi Aplikasi, yang menyediakan detail tentang kapan pengguna pertama kali mengunduh atau membeli aplikasi.
import { NativePurchases } from '@capgo/native-purchases';
const { appTransaction } = await NativePurchases.getAppTransaction();
// Check if user downloaded before version 2.0.0 (when subscription was added)
if (compareVersions(appTransaction.originalAppVersion, '2.0.0') < 0) {
// User gets free access - they downloaded before subscriptions
grantFreeAccess();
}
isEntitledToOldBusinessModel
Mengbandingkan versi aplikasi asli dari Transaksi Aplikasi terhadap versi target untuk menentukan apakah pengguna berhak atas fitur dari model bisnis yang lebih awal.
import { NativePurchases } from '@capgo/native-purchases';
// Check if user downloaded before version 2.0.0/build 42 (when subscription was added)
const result = await NativePurchases.isEntitledToOldBusinessModel({
targetVersion: '2.0.0',
targetBuildNumber: '42'
});
if (result.isOlderVersion) {
console.log(`User downloaded v${result.originalAppVersion}, granting free access`);
grantFreeAccess();
}
purchaseProduct
Membuka proses pembelian untuk produk yang ditentukan. Untuk langganan Android, masukkan ID rencana dasar Google Play sebagai planIdentifier. Untuk langganan iOS yang didukung yang menawarkan tagihan bulanan dengan komitmen 12 bulan, masukkan billingPlanType: 'monthly'.
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
await NativePurchases.purchaseProduct({
productIdentifier: 'com.example.premium.monthly',
planIdentifier: 'monthly-plan',
productType: PURCHASE_TYPE.SUBS,
});
Langganan komitmen bulanan iOS
Pada versi iOS yang didukung, StoreKit dapat menampilkan rencana tagihan bulanan dengan komitmen 12 bulan melalui pricingTerms. Tampilkan istilah-istilah ini pada paywall sebelum pembelian:
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['com.example.premium.yearly'],
productType: PURCHASE_TYPE.SUBS,
});
const yearlyProduct = products.find(
(product) => product.identifier === 'com.example.premium.yearly',
);
const monthlyCommitment = yearlyProduct?.pricingTerms?.find(
(term) => term.billingPlanType === 'monthly',
);
if (yearlyProduct && monthlyCommitment) {
console.log('Monthly price:', monthlyCommitment.billingDisplayPrice);
console.log('Total commitment:', monthlyCommitment.commitmentInfo?.priceString);
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: yearlyProduct.identifier,
productType: PURCHASE_TYPE.SUBS,
billingPlanType: 'monthly',
});
console.log('Billing plan:', transaction.billingPlanType);
console.log('Commitment ends:', transaction.commitmentInfo?.expirationDate);
}
Referensi Lengkap
- GitHub: https://github.com/Cap-go/capacitor-pembelian-natif/
- Dokumen: /docs/plugins/pembelian-natif/
- Petunjuk komitmen bulanan iOS: /docs/plugins/pembelian-natif/ios-komitmen-bulanan/