Zum Hauptinhalt springen
Zurück zu Plugins
@capgo/native-purchases
Tutorial
von github.com/Cap-go

Native Purchases

Native Einkäufe, Abonnements und iOS StoreKit-Zusagen-Abrechnungspläne mit einem einfachen API

Anleitung

Native-Einkäufe-Tutorial

@capgo/native-purchases verwenden

In-App-Abonnements leicht gemacht.

Installieren

bun add @capgo/native-purchases
bunx cap sync

What Dieses Plugin Enthält

  • restorePurchases - Wiederherstellt einen Benutzers vorherigen und verknüpft ihre appUserIDs mit jedem Benutzer, der auch diese verwendet.
  • getAppTransaction - Holt die App-Transaktionsinformationen, die Details über den Zeitpunkt liefern, an dem der Benutzer das Programm ursprünglich heruntergeladen oder gekauft hat.
  • isEntitledToOldBusinessModel - Vergleicht die ursprüngliche App-Version aus der App-Transaktion mit einer Zielversion, um zu bestimmen, ob der Benutzer berechtigt ist, Funktionen aus einem früheren Geschäftsmodell zu nutzen.
  • getProducts - Lädt Produktmetadaten aus dem Store, einschließlich unterstützter iOS-Abonnementpreisbedingungen.
  • purchaseProduct - Startet den Kaufprozess für das ausgewählte Produkt und die Rechnungsstellung.

Beispiel für die Verwendung

restorePurchases

Wiederherstellt einen Benutzers vorherigen und verknüpft ihre appUserIDs mit jedem Benutzer, der auch diese verwendet.

import { NativePurchases } from '@capgo/native-purchases';

await NativePurchases.restorePurchases();

getAppTransaction

Holt die App-Transaktionsinformationen, die Details über den Zeitpunkt liefern, an dem der Benutzer das Programm ursprünglich heruntergeladen oder gekauft hat.

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

Vergleicht die ursprüngliche App-Version aus der App-Transaktion mit einer Zielversion, um zu bestimmen, ob der Benutzer berechtigt ist, Funktionen aus einem früheren Geschäftsmodell zu nutzen.

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

Starte den Kaufprozess für das angegebene Produkt. Für Android-Abonnements geben Sie die Google Play-Base-Plan-ID an. planIdentifierFür unterstützte iOS-Abonnements, die monatliche Abrechnung mit einer 12-monatigen Verpflichtung anbieten, geben Sie die Plan-ID an. 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,
});

iOS-Monatsabonnement-Abonnements

Auf unterstützten iOS-Versionen kann StoreKit ein monatliches Abrechnungsplan mit einer 12-monatigen Verpflichtung durch pricingTermsZeigen Sie diese Begriffe auf Ihrer Zahlungswand vor dem Kauf an:

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);
}

Vollständige Referenz

Fortsetzen Sie von Using @capgo/native-purchases

Wenn Sie @__CAPGO_KEEP_0__/native-purchases verwenden Verwenden Sie @capgo/native-purchases um Zahlungen und Kaufsplanungen vorzubereiten, verbinden Sie es mit @capgo/native-Einkäufe für die Implementierungsdetails in @capgo/native-Einkäufe, Einstieg für die Implementierungsdetails in Einstieg, Capgo Preisliste für den Produktworkflow in Capgo Preisliste, Zahlungssystem für die Implementierungsdetails in Zahlungssystem, und Revenue-Handbuch für die Implementierungsdetails in Revenue-Handbuch.