Skip to main content
Kembali ke plugin
@capgo/pembelian-asli
Tutorial
@capgo/pembelian-asli

Pembelian Asli

Implementasi pembelian dalam aplikasi asli, langganan, dan rencana pembayaran StoreKit iOS dengan API

Panduan

Tutorial Pembelian Nativ

Jalankan pada perangkat

Unduh aplikasi Capgo, lalu scan kode QR code.

Pengaturan Pembelian Asli QR code

Menggunakan @capgo/native-purchases

Pembelian Aplikasi di Dalam Aplikasi yang Mudah.

Instal

bun add @capgo/native-purchases
bunx cap sync

Apa yang Dikembangkan oleh Plugin Ini

  • restorePurchases - Mengembalikan pembelian sebelumnya pengguna dan menghubungkan ID pengguna aplikasi mereka dengan pengguna lain yang menggunakan ID 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 - Mengisi metadata produk toko, termasuk istilah harga langganan iOS yang didukung.
  • purchaseProduct - Membuka proses pembelian untuk produk dan rencana pembayaran yang dipilih.

Menggunakan Contoh

restorePurchases

Memulihkan pengguna sebelumnya dan menghubungkan ID pengguna aplikasi mereka ke pengguna lain 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

Mengumpulkan informasi tentang versi aplikasi asli dari Transaksi Aplikasi melawan versi target untuk menentukan apakah pengguna berhak atas fitur dari model bisnis sebelumnya.

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

Mulai proses pembelian untuk produk yang diberikan. Untuk langganan Android, masukkan ID rencana dasar Google Play sebagai planIdentifierUntuk langganan iOS yang didukung yang menawarkan pembayaran 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 iOS bulanan dengan komitmen 12 bulan

Pada versi iOS yang didukung, StoreKit dapat menampilkan rencana pembayaran bulanan dengan komitmen 12 bulan melalui pricingTermsTampilkan 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

Teruskan dari Menggunakan @capgo/native-purchases

Jika Anda menggunakan Menggunakan @capgo/native-purchases untuk merencanakan pembayaran dan pembelian, hubungkannya dengan @capgo/native-purchases untuk detail implementasi di @capgo/native-purchases, Getting Started untuk detail implementasi di Getting Started, Capgo Pricing untuk alur produk di Capgo Pricing, Sistem Pembayaran Pengembangan detail untuk sistem Pembayaran, dan Strategi Pendapatan Pengembangan detail untuk Strategi Pendapatan.