iOS-Abrechnungspläne mit monatlicher Bindung
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Apple unterstützt Abonnements, die monatlich abgerechnet werden, den Kunden aber an eine längere 12-Monats-Laufzeit binden. Wenn StoreKit und das laufende Betriebssystem diesen Abrechnungsplan unterstützen, @capgo/native-purchases stellt die Preisbedingungen bereit, lässt Sie beim Kauf den monatlichen Abrechnungsplan auswählen und liefert Commitment-Metadaten zu Transaktionen und Erneuerungsinfos.
Verwenden Sie dies für jährliche Abo-Angebote, bei denen Nutzer monatliche Zahlungen bevorzugen, Sie aber die Kundenbindung und Planbarkeit einer festen Jahreslaufzeit wollen.
Anforderungen
Abschnitt „Voraussetzungen“- Konfigurieren Sie den monatlichen Abrechnungsplan mit 12-Monats-Commitment in App Store Connect oder in StoreKit Testing in Xcode.
- Erstellen Sie die iOS-App mit einem Xcode SDK, das StoreKit enthält
pricingTermsundbillingPlanType. - Führen Sie sie auf einer iOS-Version aus, die StoreKit-Commitment-Abrechnungspläne unterstützt.
- Stellen Sie sicher, dass eine Standard-Abrechnungsoption für Geräte oder Stores verfügbar ist, die keine Commitment-Preise zurückgeben.
Preisbedingungen laden und anzeigen
Abschnitt mit dem Titel „Preiskonditionen laden und anzeigen“Rufe getProducts() wie üblich. Für unterstützte iOS-Abonnementprodukte kann jedes Produkt enthalten 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',);Rendern Sie die vom Store bereitgestellten Werte anstelle von hartkodierten Preisen:
| Feld | Verwendungszweck |
|---|---|
billingDisplayPrice | den wiederkehrenden Rechnungsbetrag, der dem Benutzer angezeigt wird, z. B. die monatliche Gebühr. |
billingPeriod | das Abrechnungsintervall für den angezeigten Abrechnungspreis. |
commitmentInfo.priceString | Der Gesamtpreis des Commitments, formatiert für den Storefront des Nutzers. |
commitmentInfo.period | Die vollständige Commitment-Dauer. |
subscriptionOffers | Eingeführte oder Werbeangebote, die an den Preisterm gebunden sind. |
Beispiel für Paywall-Text:
function commitmentLabel(term: NonNullable<typeof monthlyCommitment>) { const total = term.commitmentInfo?.priceString; return total ? `${term.billingDisplayPrice} billed monthly, ${total} total commitment` : term.billingDisplayPrice;}Monatlichen Commitment-Plan kaufen
Abschnitt mit dem Titel „Monatlichen Commitment-Plan kaufen“Wenn der Nutzer den monatlichen Commitment-Plan auswählt, übergeben Sie billingPlanType: 'monthly'.
const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'com.example.app.premium.yearly', productType: PURCHASE_TYPE.SUBS, billingPlanType: 'monthly', appAccountToken: userStoreUuid,});Nutzt billingPlanType: 'upFront' nur, wenn du den Standard-Vorab-Tarif explizit auswählen musst. Wenn du billingPlanTypeauslassen, verwendet StoreKit das Standard-Kaufverhalten für das Produkt.
Commitment-Metadaten lesen
Abschnitt mit dem Titel „Commitment-Metadaten lesen“Transaktionen enthalten den Abrechnungsplan und den Commitment-Fortschritt, sofern StoreKit diese bereitstellt:
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);}Die Renewal-Infos können den nächsten Commitment-Zustand enthalten:
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);}Nutze das Top-Level- expirationDate und isActive Felder für Berechtigungsentscheidungen. Verwenden Sie commitmentInfo.expirationDate um dem Kunden den vollständigen Commitment-Zeitraum zu erklären.
App Store Review-Notizen
Abschnitt mit dem Titel „App Store Review Notes“- Zeige vor dem Kauf sowohl den wiederkehrenden Preis als auch den Gesamtpreis der Laufzeit an.
- Gib die Laufzeit direkt beim Kauf-Button klar an.
- Nutzt
product.title,product.priceString,pricingTerms[].billingDisplayPrice, undpricingTerms[].commitmentInfo.priceStringaus StoreKit statt hartcodierter Preise. - Ermögliche das Wiederherstellen von Käufen sowie die Verwaltung von Abonnements direkt auf dem Paywall- oder Account-Screen.
Verwandte Guides
Abschnitt mit dem Titel „Verwandte Guides“Weiter mit iOS Monthly Commitment Billing Plans
Abschnitt mit dem Titel „Weiter mit iOS-Monatsverpflichtungs-Abonnementplänen“Wenn du es nutzt iOS-Abrechnungspläne mit monatlicher Bindung um Zahlungen und Käufe zu planen, verbinde es mit @capgo/native-purchases verwenden für die native Funktionalität bei der Nutzung von @capgo/native-purchases, Capgo Preise für den Produkt-Workflow auf der Preisseite von Capgo, Zahlungssystem für die Implementierungsdetails im Zahlungssystem, @capgo/native-purchases für die Implementierungsdetails in @capgo/native-purchases und Erste Schritte für die Implementierungsdetails in Getting Started.