Lebih lanjut ke konten

Paket Billing Bulanan iOS

GitHub

Apple mendukung langganan yang membayar bulanan sementara mempertahankan pelanggan untuk jangka waktu lebih lama 12 bulan. Ketika StoreKit dan OS yang berjalan mendukung rencana pembayaran bulanan ini, @capgo/native-purchases mengungkapkan syarat harga, memungkinkan Anda memilih rencana pembayaran bulanan selama pembelian, dan mengembalikan metadata komitmen pada transaksi dan informasi perpanjangan.

Gunakan ini untuk menawarkan langganan tahunan di mana pengguna lebih suka pembayaran bulanan tetapi Anda masih ingin mempertahankan dan memprediksi komitmen tahunan.

Persyaratan

Persyaratan
  • Konfigurasi rencana pembayaran bulanan dengan komitmen 12 bulan di App Store Connect atau di StoreKit Testing di Xcode.
  • Bangun aplikasi iOS dengan Xcode SDK yang mengandung StoreKit pricingTerms dan billingPlanType.
  • Jalankan di iOS yang mendukung rencana pembayaran komitmen StoreKit.
  • Tetapkan opsi pembayaran standar untuk perangkat atau toko yang tidak mengembalikan syarat harga komitmen.

Panggil getProducts() context 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',
);

Panggil seperti biasa. Untuk produk langganan iOS yang didukung, setiap produk dapat mencakup

Salin ke clipboardTampilkan nilai yang disediakan toko alih-alih harga yang dikodekan secara keras:
billingDisplayPriceBidang
billingPeriodPakai untuk apa saja ini:
commitmentInfo.priceStringHarga total komitmen yang disesuaikan untuk toko penjual pengguna.
commitmentInfo.periodJangka waktu komitmen penuh.
subscriptionOffersTawaran promosi atau penawaran spesial yang terkait dengan istilah harga.

Contoh teks pembatasan pembayaran:

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

Ketika pengguna memilih rencana komitmen bulanan, kirim billingPlanType: 'monthly'.

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

Gunakan billingPlanType: 'upFront' Hanya gunakan ketika Anda perlu memilih secara eksplisit rencana pembayaran standar sebelumnya. Jika Anda melewatkan billingPlanTypeJika Anda melewatkan, StoreKit menggunakan perilaku pembelian defaultnya untuk produk tersebut.

Transaksi mencakup rencana pembayaran dan kemajuan komitmen ketika StoreKit menyediakannya:

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);
}

Info perpanjangan dapat mencakup status komitmen berikutnya:

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);
}

Gunakan tingkat atas expirationDate dan isActive bidang untuk keputusan hak istimewa. Gunakan commitmentInfo.expirationDate untuk menjelaskan timeline komitmen penuh kepada pelanggan.

  • Tampilkan baik harga tagihan berulang dan harga komitmen total sebelum pembelian.
  • Jadikan panjang komitmen eksplisit di dekat tombol pembelian.
  • Gunakan product.title, product.priceString, pricingTerms[].billingDisplayPrice, dan pricingTerms[].commitmentInfo.priceString bukan dari harga yang dihardiskan dari StoreKit.
  • Berikan aksi pembelian ulang dan manajemen langganan di layar pembayaran atau layar akun.

Teruskan dari Rencana Pembayaran Bulanan iOS

Judul bagian “Teruskan dari Rencana Pembayaran Bulanan iOS”

Jika Anda menggunakan Rencana Pembayaran Bulanan iOS untuk merencanakan pembayaran dan pembelian, hubungkannya dengan Menggunakan @capgo/native-purchases untuk kemampuan native di Menggunakan @capgo/native-purchases, Capgo Pricing untuk alur kerja produk di Capgo Pricing, Sistem Pembayaran Sistem Pembayaran untuk detail implementasi di Sistem Pembayaran, @capgo/pembelian-asli Sistem Pembayaran untuk detail implementasi di @capgo/pembelian-asli, dan Mulai Sistem Pembayaran untuk detail implementasi di Mulai.