Plans de facturation mensuels pour iOS
Copiez un prompt de configuration avec les étapes d'installation et la guide markdown complète pour ce plugin.
Apple prend en charge les abonnements qui facturent mensuellement tout en engageant le client à un terme plus long de 12 mois. Lorsque StoreKit et le système d'exploitation en cours supportent ce plan de facturation, @capgo/native-purchases expose les termes de tarification, permet de sélectionner le plan de facturation mensuel lors de l'achat et renvoie les métadonnées de la commitment sur les transactions 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 fidélité et la prévisibilité d'un terme annuel engagé.
Exigences
Section intitulée « Exigences »- Configurez le plan de facturation mensuel 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. - context
- Exécutez sur une version iOS qui prend en charge les plans de facturation de StoreKit commitment.
Charger et Afficher les Termes de Prix
Section intitulée « Charger et Afficher les Termes de Prix »Appeler getProducts() context 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',);Copier dans le presse-papier
| Afficher les valeurs fournies par la boutique au lieu de prix durcis : | Champ |
|---|---|
billingDisplayPrice | Utilisez-le pour |
billingPeriod | Le montant facturable récurrent affiché à l'utilisateur, par exemple le coût mensuel. |
commitmentInfo.priceString | Le prix total de la mise à contribution formaté pour le magasin de l'utilisateur. |
commitmentInfo.period | La période de mise à contribution complète. |
subscriptionOffers | Offres introductives ou promotionnelles 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;}Acheter le Plan de Mise à Contribution Mensuelle
Section intitulée « Acheter le Plan de Mise à Contribution Mensuelle »Lorsque l'utilisateur sélectionne le plan de mise à contribution mensuelle, passez billingPlanType: 'monthly'.
const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'com.example.app.premium.yearly', productType: PURCHASE_TYPE.SUBS, billingPlanType: 'monthly', appAccountToken: userStoreUuid,});Utilisez billingPlanType: 'upFront' Utilisez uniquement lorsque vous avez besoin de sélectionner explicitement le plan de tarification standard à l'avance. Si vous ommettez billingPlanTypeStoreKit utilise son comportement de mise à contribution par défaut pour le produit.
Lire les métadonnées de l'engagement
Sous-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);}Les informations de renouvellement peuvent 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 supérieur expirationDate et isActive les champs pour les décisions de droit d'accès. Utilisez commitmentInfo.expirationDate pour expliquer l'ensemble du calendrier de la commitment à l'égard du client.
Notes de la Revue de l'App Store
Sous-section intitulée « Notes de la Revue de l'App Store »- Affichez à la fois le prix de facturation récurrente et le prix total de la commitment avant l'achat.
- Faites l'explicitation de la longueur de la commitment près du bouton d'achat.
- Utilisez
product.title,product.priceString,pricingTerms[].billingDisplayPrice, etpricingTerms[].commitmentInfo.priceStringà partir de StoreKit au lieu de prix fixés. - Fournissez les actions de restauration des achats et de gestion de l'abonnement sur la page de paiement ou l'écran de compte.
Guides connexes
Sous-section intitulée « Guides connexes »- Créer des abonnements iOS
- Configurer les tests de banc iOS
- Lignes directrices de la revue de l'App Store iOS
Continuer à partir des plans de facturation mensuelle de l'engagement iOS
Titre de la section « Continuer à partir des plans de facturation mensuelle de l'engagement iOS »Si vous utilisez les plans de facturation mensuelle de l'engagement iOS pour planifier les paiements et les achats, connectez-l’avec En utilisant @capgo/native-purchases pour la capacité native dans En utilisant @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 le 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.