iOS-Monatliche Verpflichtungsabrechnungspläne
Kopieren Sie einen Einrichtungsprompt mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin.
Apple unterstützt Abonnements, die monatlich berechnet 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,
enthält die Preisthemen, ermöglicht die Auswahl des monatlichen Abrechnungsplans bei der Kaufabwicklung und liefert Informationen zu Verpflichtungen und Wiederholungsdaten bei Transaktionen und Wiederholungsdaten.
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- Abschnitt mit dem Titel „Anforderungen“
- Build the iOS app with an Xcode SDK that contains StoreKit
pricingTermsBauen Sie die iOS-App mit einem Xcode __CAPGO_KEEP_0__ auf, der StoreKit enthält,billingPlanType. - und führen Sie sie auf einem iOS-System aus, das StoreKit-Verpflichtungsabrechnungspläne unterstützt.
- Bewahren Sie eine Standardrechnungsoption für Geräte oder Geschäftsstellen, 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 Produkt 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',);Stellen Sie die vom Laden bereitgestellten Werte anstelle von festgelegten Preisen dar:
| Feld | Verwenden Sie es für |
|---|---|
billingDisplayPrice | Der wiederkehrende Rechnungsbetrag, der dem Benutzer angezeigt wird, z. B. der monatliche Betrag. |
billingPeriod | Der Rechnungszyklus für den angezeigten Rechnungspreis. |
commitmentInfo.priceString | Der Gesamtaufstockungspreis im Format für das Benutzer-Shopfenster. |
commitmentInfo.period | Die gesamte Aufstockungsperiode. |
subscriptionOffers | Einführende oder werbliche Angebote, die der Preisbegriff beiliegen. |
Beispiel für Paywall-Kopie:
function commitmentLabel(term: NonNullable<typeof monthlyCommitment>) { const total = term.commitmentInfo?.priceString; return total ? `${term.billingDisplayPrice} billed monthly, ${total} total commitment` : term.billingDisplayPrice;}Kauf des monatlichen Aufstockungsplans
Abschnitt mit dem Titel „Kauf des monatlichen Aufstockungsplans“Wenn der Benutzer den monatlichen Aufstockungsplan 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 Sie nur dann, wenn Sie die Standard-Basis-Beschaffungsplan explizit auswählen müssen. Wenn Sie dies billingPlanType: 'upFront' StoreKit verwendet dann sein Standardkaufverhalten für das Produkt. billingPlanTypeTip
Abschnitt mit dem Titel „Lesen Sie die Verpflichtungs-Metadaten“
Transaktionen umfassen den Beschaffungsplan und den Verpflichtungsfortschritt, wenn StoreKit ihn bereitstellt:Auf die Zwischenablage kopieren
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);}Wiederholungsinfo kann 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. Verwenden Sie commitmentInfo.expirationDate um die vollständige Verpflichtungszeitraum zum Kunden zu erklären.
App Store-Bewertungsnotizen
Abschnitt mit dem Titel „App Store-Bewertungsnotizen“- Zeigen Sie sowohl den wiederkehrenden Abrechnungspreis als auch den Gesamtaufwand vor dem Kauf an.
- Machen Sie die Verpflichtungszeit explizit nahe dem Kaufbutton.
- Verwenden Sie
product.title,product.priceString,pricingTerms[].billingDisplayPrice, undpricingTerms[].commitmentInfo.priceStringvon StoreKit anstatt von festgelegten Preisen. - Geben Sie die Wiederherstellung von Kaufleistungen und die Verwaltung von Abonnementaktionen auf der Bezahlwand oder dem Kontoscreen an.