iOS-Monatsverpflichtung-Billigungspläne
Eine Einrichtungsvorlage mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin kopieren.
Apple unterstützt Abonnements, die monatlich abrechnen, 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, werden die Preisbedingungen offenbart, Sie können die monatliche Abrechnungsplan während des Kaufs auswählen und Informationen zu Transaktionen und Wiederholungsinformationen zurückgeben.
Verwenden Sie dies für jährliche Abonnementangebote, bei denen die Nutzer monatliche Zahlungen bevorzugen, aber Sie noch die Bindung und Vorhersehbarkeit eines jährlichen Vertrags wollen.
Anforderungen
Anforderungen- Konfigurieren Sie den monatlichen Abrechnungsplan mit 12-monatiger Verpflichtung in App Store Connect oder in StoreKit Testing in Xcode.
- Bauen Sie die iOS-App mit einem Xcode SDK auf, der StoreKit enthält
pricingTermsundbillingPlanType. - Laufen Sie auf einem iOS-Version, die StoreKit-Verpflichtungsabrechnungspläne unterstützt.
- Bewahren Sie eine Standardabrechnungsoption für Geräte oder Verkaufsstellen auf, die keine Verpflichtungspreisbedingungen zurückgeben.
Laden und Anzeigen der Preisbedingungen
Abschnitt mit dem Titel „Laden und Anzeigen der Preisbedingungen“Aufrufen getProducts() Kontext: HTML-Textfragment aus einem längeren Capgo-UI-String (Elternschlüssel `appflow_migration_step2`). Seite/Bereich: Appflow-Vergleich / Migration-Marketingtext. Rolle: Website-Text. Gesehen in: Seite ionic-appflow.astro. Capgo-Produkt-/Marken- und Entwicklertrems werden genau beibehalten. Nachrichtenschlüssel `appflow_migration_step2` (Appflow-Migration-Schritt2). 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',);Zur Zwischenablage kopieren
| Anstelle der festen Preise die vom Laden bereitgestellten Werte rendern: | Feld |
|---|---|
billingDisplayPrice | Verwenden Sie es für |
billingPeriod | Der wiederkehrende Abrechnungsbetrag, der dem Benutzer angezeigt wird, z.B. der monatliche Betrag. |
commitmentInfo.priceString | Der Gesamtbetrag der monatlichen Verpflichtung, formatiert für den Benutzer in seinem Laden. |
commitmentInfo.period | Die gesamte Verpflichtungszeit. |
subscriptionOffers | Einleitende oder werbliche Angebote, die der Preisvereinbarung beigefügt sind. |
Beispiel für eine Paywall-Kopie:
function commitmentLabel(term: NonNullable<typeof monthlyCommitment>) { const total = term.commitmentInfo?.priceString; return total ? `${term.billingDisplayPrice} billed monthly, ${total} total commitment` : term.billingDisplayPrice;}Monatliche Verpflichtungsplan kaufen
Sektion mit dem Titel „Monatlicher Verpflichtungsplan kaufen“Wenn der Benutzer den monatlichen Verpflichtungsplan 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,});Nur verwenden, wenn Sie explizit die Standard-Vorauszahlungsabrechnungsplan auswählen müssen. Wenn Sie dies billingPlanType: 'upFront' vergessen, verwendet StoreKit seine Standardkaufverhaltensweise für das Produkt. billingPlanTypeKaufe den Monatlichen Verpflichtungsplan
Verpflichtungsdaten lesen
Abschnitt mit dem Titel ‘Verpflichtungsdaten lesen’Transaktionen enthalten die Abrechnungspläne 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 Verpflichtungszustand 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);}Verwenden Sie die oberste Ebene expirationDate und isActive Felder für Entscheidungen über die Berechtigung. commitmentInfo.expirationDate Verwenden Sie
Zur Erklärung des vollständigen Verpflichtungszeitplans für den Kunden.
App Store Review Notes- Abschnitt mit dem Titel „App Store Review Notes“
- Zeigen Sie sowohl den wiederkehrenden Abrechnungspreis als auch den Gesamtpreis der Verpflichtung vor dem Kauf an.
- Machen Sie die Verpflichtungszeit explizit nahe dem Kaufbutton.
product.title,product.priceString,pricingTerms[].billingDisplayPriceVerwenden SiepricingTerms[].commitmentInfo.priceString, und - von StoreKit anstatt von festgelegten Preisen.
Bieten Sie Wiederherstellungskauf und Verwaltung von Abonnementaktionen auf der Zahlungsanzeige oder dem Konto-Bildschirm an.
Zugehörige AnleitungenWeitergehen von iOS-Monatsverpflichtungsbilanzplänen
Abschnitt mit dem Titel „Weitergehen von iOS-Monatsverpflichtungsbilanzplänen“Wenn Sie iOS-Monatsverpflichtungsbilanzpläne zum Planen von Zahlungen und Kaufleistungen verwenden, verbinden Sie sie mit Mit @capgo/native-purchases für die native Fähigkeit in Mit @capgo/native-purchases, Capgo-Preisgestaltung für das Produktworkflow in Capgo-Preisgestaltung, Zahlungssystem für die Implementierungsdetails im Zahlungssystem @capgo/native-purchases für die Implementierungsdetails in @capgo/native-purchases und Einstieg für die Implementierungsdetails in Einstieg.