Zum Inhalt springen

__CAPGO_KEEP_0__

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,

er enthüllt die Preisbedingungen, ermöglicht es Ihnen, während des Kaufs die monatliche Abrechnungsplan auszuwählen und liefert Informationen über die Verpflichtung und die Wiederholungsdaten für 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 pricingTerms Bauen Sie die iOS-App mit einem Xcode __CAPGO_KEEP_0__ auf, der StoreKit enthält billingPlanType.
  • und führen Sie sie auf einem iOS-Betriebssystem aus, das StoreKit-Verpflichtungsabrechnungspläne unterstützt.
  • Bewahren Sie eine Standardabrechnungsoption für Geräte oder Geschäftsstellen, die keine Verpflichtungspreisvereinbarungen zurückgeben.

Aufrufen getProducts() wie gewohnt. Für unterstützte iOS-Abonnementprodukte kann jeder Produkt jede 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:

FeldBenutze es für
billingDisplayPriceDer wiederkehrende Rechnungsbetrag, der dem Benutzer angezeigt wird, z.B. der monatliche Betrag.
billingPeriodDer Rechnungszyklus für den angezeigten Rechnungsbetrag.
commitmentInfo.priceStringDer Gesamtbetrag der Verpflichtung, formatiert für das Einkaufen des Benutzers.
commitmentInfo.periodDie gesamte Verpflichtungszeit.
subscriptionOffersEinführende oder werbliche Angebote, die der Preisbegriff beiliegen.

Beispiel für Paywall-Copy:

function commitmentLabel(term: NonNullable<typeof monthlyCommitment>) {
const total = term.commitmentInfo?.priceString;
return total
? `${term.billingDisplayPrice} billed monthly, ${total} total commitment`
: term.billingDisplayPrice;
}

Wenn der Benutzer den monatlichen Verpflichtungsplan auswählt, übermitteln billingPlanType: 'monthly'.

const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'com.example.app.premium.yearly',
productType: PURCHASE_TYPE.SUBS,
billingPlanType: 'monthly',
appAccountToken: userStoreUuid,
});

Verwenden Sie billingPlanType: 'upFront' nur dann, wenn Sie die Standard-Vorauszahlungsabrechnungspläne explizit auswählen müssen. Wenn Sie billingPlanTypeStoreKit verwendet dann sein Standardkaufverhalten für das Produkt.

Die Transaktionen umfassen 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 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);
}

Verwende die oberste Ebene expirationDate und isActive Felder für Entscheidungen zur Berechtigung verwenden. Verwende commitmentInfo.expirationDate um die vollständige Verpflichtungszeitraum zum Kunden zu erklären.

  • Zeige sowohl den wiederkehrenden Abrechnungspreis als auch den Gesamtaufwand vor dem Kauf an.
  • Mache die Verpflichtungszeit explizit in der Nähe des Kaufknopfes.
  • Verwende product.title, product.priceString, pricingTerms[].billingDisplayPrice, und pricingTerms[].commitmentInfo.priceString von StoreKit anstatt von festgelegten Preisen.
  • Bereitstellung von Wiederherstellungskauf- und Abonnementverwaltung auf der Bezahlwand oder dem Kontoscreen.

Wenn Sie iOS-Monatsverpflichtungsberechnungspläne für die Planung von Zahlungen und Kaufs verwenden, verbinden Sie sie mit Verwenden Sie @capgo/native-purchases für die native Fähigkeit in Verwendung von @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 Anleitung zum Starten.