iOS-Monatsverpflichtungskostenpläne
Ein Setup-Prompt mit den Installations-Schritten und der vollständigen Markdown-Anleitung für diesen Plugin kopieren.
Apple unterstützt Abonnements, die monatlich abgerechnet werden, während der Kunde sich für eine längere 12-monatige Laufzeit verpflichtet. @capgo/native-purchases Wenn StoreKit und das laufende Betriebssystem diese Abrechnungsplan unterstützen,
die Preisbedingungen offenlegt, Ihnen ermöglicht, während des Kaufs die monatliche Abrechnungsplan auszuwählen und die Verpflichtungsdaten zu Transaktionen und Wiederholungsinformationen zurückzugeben.
Verwenden Sie dies für jährliche Abonnementangebote, bei denen die Nutzer monatliche Zahlungen bevorzugen, aber Sie noch die Bindung und Vorhersehbarkeit einer jährlichen Laufzeit wollen.
Anforderungen- Konfigurieren Sie die monatliche Abrechnung mit 12-Monats-Verpflichtungsabrechnungsplan in App Store Connect oder in StoreKit Testing in Xcode.
- Bauen Sie die iOS-App mit einem Xcode SDK , das StoreKit enthält.
pricingTermsundbillingPlanType. - Lauern Sie auf einer iOS-Version, die StoreKit-Verpflichtungsabrechnungspläne unterstützt.
- Bewahren Sie eine Standardabrechnungsoption für Geräte oder Verkaufsstellen auf, die keine Verpflichtungspreisvereinbarungen zurückgeben.
Laden und Anzeigen von Preisvereinbarungen
Abschnitt mit dem Titel „Laden und Anzeigen von Preisvereinbarungen“Aufrufen getProducts() wie gewohnt. Für unterstützte iOS-Abonnementprodukte kann jeder Produktbezug 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',);Statt der festen Preise die vom Laden bereitgestellten Werte rendern:
| Feld | Verwenden Sie es für |
|---|---|
billingDisplayPrice | Der wiederkehrende Abrechnungsbetrag, der dem Benutzer angezeigt wird, z.B. der monatliche Betrag. |
billingPeriod | Die Abrechnungsperiode für die angezeigte Abrechnungspreis. |
commitmentInfo.priceString | Die Gesamtkommitmentpreis im Format für den Benutzer des Ladens. |
commitmentInfo.period | Die gesamte Kommitmentdauer. |
subscriptionOffers | Einführende oder werbliche Angebote, die der Preisbegriff beiliegen. |
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;}Monatliche Verpflichtungsvereinbarung kaufen
Abschnitt mit dem Titel “Monatliche Verpflichtungsvereinbarung kaufen”Wenn der Benutzer die monatliche Verpflichtungsvereinbarung auswählt, übermitteln Sie billingPlanType: 'monthly'.
const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'com.example.app.premium.yearly', productType: PURCHASE_TYPE.SUBS, billingPlanType: 'monthly', appAccountToken: userStoreUuid,});Verwenden billingPlanType: 'upFront' Verwenden Sie dies nur dann, wenn Sie explizit die Standard-Vorauszahlungsberechnung wählen müssen. Wenn Sie dies billingPlanTypeStoreKit verwendet sein Standardkaufverhalten für das Produkt.
Lesen Sie die Verpflichtungsvereinbarungs-Metadaten
Abschnitt mit dem Titel “Lesen Sie die Metadaten der Verpflichtung”Die Transaktionen umfassen das Abrechnungsplan und den Fortschritt der Verpflichtung, wenn StoreKit es liefert:
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 Erneuerungsinformationen können den nächsten Verpflichtungsstatus umfassen:
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);}Verwenden Sie die obersten Ebene expirationDate und isActive Felder für Entscheidungen über die Berechtigung. Verwenden commitmentInfo.expirationDate Sie, um dem Kunden den vollständigen Verpflichtungszeitplan zu erklären.
App Store-Bewertungsnotizen
Abschnitt mit dem Titel “App Store-Bewertungsnotizen”- Zeigen Sie sowohl den wiederkehrenden Abrechnungspreis als auch den Gesamtpreis der Verpflichtung vor dem Kauf an.
- Machen Sie die Laufzeit des Engagements explizit nahe dem Kaufbutton.
- Verwenden Sie
product.title,product.priceString,pricingTerms[].billingDisplayPrice, undpricingTerms[].commitmentInfo.priceStringaus StoreKit anstatt festgelegter Preise. - Bieten Sie Wiederherstellungskauf und Verwalten-Abonnement-Aktionen auf der Zahlungsseite oder dem Kontoscreen an.
Zugehörige Anleitungen
Abschnitt mit dem Titel „Zugehörige Anleitungen“- Erstellen Sie iOS-Abonnements
- Konfigurieren Sie die iOS-Sandbox-Testung
- iOS-App-Store-Bewertungsrichtlinien
Bleiben Sie bei den iOS-Monatsabonnement-Beitrittsplänen weiterhin
Abschnitt mit dem Titel „Bleiben Sie bei den iOS-Monatsabonnement-Beitrittsplänen weiterhin“Wenn Sie die Verwendung von iOS-Monatsverpflichtungsberechnungsplänen zum Planen von Zahlungen und Kaufleistungen, verbinden Sie es mit Mit @capgo/native-purchases für die native Fähigkeit in Mit @capgo/native-purchases, Capgo Preisgestaltung für den Produktworkflow in Capgo Preisgestaltung, Zahlungssystem für die Implementierungsdetails in Zahlungssystem, @capgo/native-purchases für die Implementierungsdetails in @capgo/native-purchases, und Anleitung zum Starten für die Implementierungsdetails in Getting Started.