Guide
Tutoriel sur les achats natifs
En utilisant @capgo/native-purchases
Les abonnements en application rendus faciles.
Installer
bun add @capgo/native-purchases
bunx cap sync
Ce que ce plugin expose
restorePurchases- Restaure l'ancienne attente d'un utilisateur et relie leur appUserIDs à n'importe quel utilisateur utilisant également ceux-ci.getAppTransaction- Récupère les informations de transaction de l'application, qui fournit des détails sur quand l'utilisateur a téléchargé ou acheté l'application pour la première fois.isEntitledToOldBusinessModel- Compare la version d'origine de l'application de la transaction d'application avec une version cible pour déterminer si l'utilisateur a droit à des fonctionnalités d'un modèle commercial antérieur.getProducts- Charge les métadonnées de produit de la boutique, y compris les termes de tarification de l'abonnement iOS pris en charge.purchaseProduct- Démarre le processus d'achat pour le produit sélectionné et le plan de facturation.
- Utilisation de l'exemple
restorePurchases
Restaure les précédentes et relie les appUserIDs de l'utilisateur à celles de tout utilisateur utilisant également celles-ci.
import { NativePurchases } from '@capgo/native-purchases';
await NativePurchases.restorePurchases();
getAppTransaction
Obtenez les informations de transaction d'application, qui fournissent des détails sur la date à laquelle l'utilisateur a téléchargé ou acheté l'application pour la première fois.
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
Comparez la version d'application originale de la transaction d'application avec une version cible pour déterminer si l'utilisateur a le droit à des fonctionnalités d'un modèle commercial antérieur.
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
Démarrer le processus d'achat pour le produit spécifié. Pour les abonnements Android, passez l'ID de plan de base Google Play comme planIdentifierDémarrer le processus d'achat pour le produit spécifié. Pour les abonnements iOS avec facturation mensuelle et engagement de 12 mois, passez 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,
});
Abonnements iOS mensuels avec engagement de 12 mois
Sur les versions iOS prises en charge, StoreKit peut exposer un plan de facturation mensuel avec un engagement de 12 mois à travers pricingTermsAffichez ces termes sur votre page de paiement avant l'achat :
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);
}
Référence complète
- GitHub : https://github.com/Cap-go/capacitor-native-purchases/
- Documentation : /docs/plugins/native-purchases/
- Guide de la déclaration mensuelle iOS : /docs/plugins/native-purchases/ios-monthly-commitment/
Continuez à partir de l'utilisation de @capgo/native-purchases
Si vous utilisez L'utilisation de @capgo/native-purchases pour planifier les paiements et les achats, connectez-l’avec @capgo/native-purchases pour les détails d'implémentation dans @capgo/native-purchases Démarrage pour les détails d'implémentation dans Démarrage Capgo Tarification pour le flux de travail du produit dans Capgo Tarification Système de paiement pour les détails d'implémentation dans le système de paiement, et Guide de revenus pour les détails d'implémentation dans le Guide de revenus.