Zum Inhalt springen

iOS monatliche Verpflichtungs-Abrechnungspläne

GitHub

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,

erläutert die Preisbedingungen, ermöglicht es Ihnen, während des Kaufs die monatliche Abrechnungsplan auszuwählen und liefert Informationen zu Transaktionen und Wiederholungsinformationen.

Verwenden Sie dies für jährliche Abonnementangebote, bei denen die Nutzer monatliche Zahlungen bevorzugen, aber Sie trotzdem 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
  • Laufen Sie auf einem iOS-Version, die StoreKit-Verpflichtungsabrechnungspläne unterstützt.

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

FeldVerwenden Sie es für
billingDisplayPriceDer wiederkehrende Abrechnungsbetrag, der dem Benutzer angezeigt wird, z.B. der monatliche Betrag.
billingPeriodDie Abrechnungsperiode für den angezeigten Abrechnungspreis.
commitmentInfo.priceStringDie Gesamtkommitmentpreis, formatiert für das Benutzer-Shopfenster.
commitmentInfo.periodDie gesamte Kommitmentdauer.
subscriptionOffersEinführende oder werbliche Angebote, die der Preisbegriff beiliegen.

Beispiel-Zutrittstext:

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 das monatliche Kommitment-Abonnement 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 billingPlanType: 'upFront' Nur dann, wenn Sie explizit die Standard-Vorauszahlungsabrechnungsplan auswählen müssen. Wenn Sie dies billingPlanTypeStoreKit verwendet seine Standardkaufverhalten für das Produkt.

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 Erneuerungsinfo kann den nächsten Verpflichtungszustand 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 den Top-Level expirationDate und isActive Felder für Entscheidungen über die Berechtigung. commitmentInfo.expirationDate Verwenden Sie, um die vollständige Verpflichtungszeitraum zum Kunden zu erklären.

  • Zeigen Sie sowohl den wiederkehrenden Abrechnungspreis als auch den Gesamtaufwandspreis vor dem Kauf an.
  • Machen Sie die Verpflichtungszeit explizit nahe dem Kaufbutton.
  • Verwenden Sie product.title, product.priceString, pricingTerms[].billingDisplayPrice, und pricingTerms[].commitmentInfo.priceString aus StoreKit anstatt festgelegter Preise.
  • Bieten Sie Wiederherstellungskauf und Verwaltung von Abonnementaktionen auf der Zahlungsseite oder dem Kontoscreen an.

Wenn Sie " iOS-Monatsverpflichtungsberechnungspläne zum Planen von Zahlungen und Kaufleistungen verwenden, verbinden Sie es mit Verwenden Sie @capgo/native-purchases für die native Fähigkeit in Verwenden Sie @capgo/native-purchases, Capgo-Preisgestaltung für das Produktworkflow in Capgo-Preisgestaltung, Zahlungssystem für die Implementierungsdetails in Zahlungssystem, @capgo/native-purchases für die Implementierungsdetails in @capgo/native-purchases, und Einstieg für die Implementierungsdetails in Einstieg.