Plans de facturation mensuelle iOS
Copiez une invite de configuration avec les étapes d'installation et la guide markdown complet pour ce plugin.
Apple prend en charge les abonnements qui facturent mensuellement tout en engageant le client à un terme plus long de 12 mois. @capgo/native-purchases expose les termes de tarification, permet de sélectionner le plan de facturation mensuelle lors de l'achat et renvoie les métadonnées de la transaction et les informations de renouvellement.
Utilisez cela pour des offres d'abonnement annuel où les utilisateurs préfèrent des paiements mensuels mais vous voulez toujours la rétention et la prévisibilité d'un terme annuel engagé.
Exigences
Section intitulée « Exigences »- Configurez le plan de facturation mensuelle avec un engagement de 12 mois dans App Store Connect ou dans StoreKit Testing dans Xcode.
- Construisez l'application iOS avec un Xcode SDK contenant StoreKit
pricingTermsetbillingPlanType. - Exécutez sur une version iOS qui prend en charge les plans de facturation de StoreKit.
- Conservez une option de facturation standard disponible pour les appareils ou les points de vente qui ne retournent pas les termes de tarification de l'engagement.
Charger et Afficher les Conditions de Tarification
Section intitulée « Charger et Afficher les Conditions de Tarification »Appeler getProducts() Comme d'habitude. Pour les produits de souscription iOS supportés, chaque produit peut inclure pricingTerms.
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
const { products } = await NativePurchases.getProducts({ productIdentifiers: ['com.example.app.premium.yearly'], productType: PURCHASE_TYPE.SUBS,});
const premiumYearly = products.find( (product) => product.identifier === 'com.example.app.premium.yearly',);const monthlyCommitment = premiumYearly?.pricingTerms?.find( (term) => term.billingPlanType === 'monthly',);Rendre les valeurs fournies par la boutique au lieu des tarifs fixés par défaut :
| Champ | Utilisez-le pour |
|---|---|
billingDisplayPrice | Le montant de facturation récurrent affiché à l'utilisateur, par exemple le coût mensuel. |
billingPeriod | La fréquence de facturation pour le prix de facturation affiché. |
commitmentInfo.priceString | Le prix total de la mise à disposition formatté pour le magasin de l'utilisateur. |
commitmentInfo.period | La période de mise à disposition complète. |
subscriptionOffers | Offres promotionnelles ou d'introduction attachées au terme de tarification. |
Exemple de copie de mur payant :
function commitmentLabel(term: NonNullable<typeof monthlyCommitment>) { const total = term.commitmentInfo?.priceString; return total ? `${term.billingDisplayPrice} billed monthly, ${total} total commitment` : term.billingDisplayPrice;}Achetez le Plan de Mise à Disposition Mensuel
Lorsque l'utilisateur sélectionne le plan de mise à disposition mensuel, passezCopier dans l'annuaire billingPlanType: 'monthly'.
const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'com.example.app.premium.yearly', productType: PURCHASE_TYPE.SUBS, billingPlanType: 'monthly', appAccountToken: userStoreUuid,});StoreKit utilise son comportement de mise à disposition par défaut pour le produit. billingPlanType: 'upFront' Utilisez uniquement lorsque vous devez sélectionner explicitement le plan de tarification standard à l'avance. Si vous omittrez billingPlanTypeStoreKit utilise son comportement de mise à disposition par défaut pour le produit.
Lire les métadonnées de l'engagement
Section intitulée “Lire les métadonnées de l'engagement”Les transactions incluent le plan de facturation et l'avancement de l'engagement lorsque StoreKit le fournit :
if (transaction.billingPlanType === 'monthly') { console.log('Current billing period:', transaction.commitmentInfo?.billingPeriodNumber); console.log('Total billing periods:', transaction.commitmentInfo?.totalBillingPeriods); console.log('Commitment ends:', transaction.commitmentInfo?.expirationDate); console.log('Commitment total:', transaction.commitmentInfo?.price);}L'information de renouvellement peut inclure l'état de l'engagement suivant :
const { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS, onlyCurrentEntitlements: true,});
for (const purchase of purchases) { const commitment = purchase.renewalInfo?.commitmentInfo; if (!commitment) continue;
console.log('Renews into another commitment:', commitment.willAutoRenew); console.log('Next billing plan:', commitment.renewalBillingPlanType); console.log('Next renewal date:', commitment.renewalDate);}Utilisez le niveau de expirationDate et isActive champs pour les décisions de droit d'accès. Utilisez commitmentInfo.expirationDate pour expliquer le calendrier de la pleine engagement au client.
Notes de Revue de l'App Store
Sous-section intitulée “Notes de Revue de l'App Store”- Affichez les deux prix de facturation récurrente et le prix total d'engagement avant l'achat.
- Faites l'engagement explicite près du bouton d'achat.
- Utilisez
product.title,product.priceString,pricingTerms[].billingDisplayPrice, etpricingTerms[].commitmentInfo.priceStringdes prix à partir de StoreKit au lieu de prix fixés. - Fournissez les actions de restauration d'achat et de gestion d'abonnement sur la page de paiement ou la page de compte.
Guides connexes
Sous-section intitulée “Guides connexes”- Créer des abonnements iOS
- Configurer les tests de banc d'essai iOS
- Lignes directrices de revue de l'App Store iOS
Continuez à partir des plans de facturation mensuelle de l'App Store iOS
Titre de la section « Continuez à partir des plans de facturation mensuelle de l'App Store iOS »Si vous utilisez Plans de facturation mensuelle de l'App Store iOS pour planifier les paiements et les achats, connectez-le avec Utiliser @capgo/native-purchases pour la capacité native dans Utiliser @capgo/native-purchases, Capgo Pricing pour le flux de travail du produit dans Capgo Pricing, Système de paiement pour le détail d'implémentation dans Système de paiement, @capgo/achats natifs pour le détail d'implémentation dans @capgo/achats natifs, et Démarrage pour le détail d'implémentation dans Démarrage.