가이드
네이티브 구매에 대한 튜토리얼
@capgo/native-purchases 사용
앱 내 구독이 쉬워졌습니다.
설치
bun add @capgo/native-purchases
bunx cap sync
What This Plugin Exposes
restorePurchases- 사용자의 이전 버전을 복원하고 사용자 ID를 연결하여 사용자 ID가 동일한 다른 사용자와 연결합니다.getAppTransaction- 앱 거래 정보를 가져옵니다. 이 정보는 사용자가 앱을 처음 다운로드하거나 구매한 날짜에 대한 세부 정보를 제공합니다.isEntitledToOldBusinessModel- App Transaction에서 원래 앱 버전을 대상 버전과 비교하여 사용자가 이전 비즈니스 모델에서 특정 기능에 대한 권리를 갖는지 결정합니다.getProducts- iOS 구독 가격 조건을 포함하여 스토어 제품 메타데이터를 로드합니다.purchaseProduct- 선택한 제품과 청구 계획에 대한 구매 프로세스를 시작합니다.
Example Usage
restorePurchases
사용자의 이전 버전을 복원하고 사용자 ID를 연결하여 사용자 ID가 동일한 다른 사용자와 연결합니다.
import { NativePurchases } from '@capgo/native-purchases';
await NativePurchases.restorePurchases();
getAppTransaction
App Transaction 정보를 가져옵니다. 이 정보는 사용자가 앱을 처음 다운로드하거나 구매한 날짜에 대한 세부 정보를 제공합니다.
import { NativePurchases } from '@capgo/native-purchases';
const { appTransaction } = await NativePurchases.getAppTransaction();
// Check if user downloaded before version 2.0.0 (when subscription was added)
if (compareVersions(appTransaction.originalAppVersion, '2.0.0') < 0) {
// User gets free access - they downloaded before subscriptions
grantFreeAccess();
}
isEntitledToOldBusinessModel
원래 앱 버전을 App Transaction에서 대상 버전과 비교하여 사용자가 이전 비즈니스 모델에서 특정 기능에 대한 권리를 갖는지 결정합니다.
import { NativePurchases } from '@capgo/native-purchases';
// Check if user downloaded before version 2.0.0/build 42 (when subscription was added)
const result = await NativePurchases.isEntitledToOldBusinessModel({
targetVersion: '2.0.0',
targetBuildNumber: '42'
});
if (result.isOlderVersion) {
console.log(`User downloaded v${result.originalAppVersion}, granting free access`);
grantFreeAccess();
}
purchaseProduct
지정된 제품에 대한 구매 프로세스를 시작합니다. Android 구독의 경우 Google Play 기본 계획 ID를 전달하세요. planIdentifier. iOS에서 지원되는 구독이 월별 청구와 12개월의 계약을 제공하는 경우 월별 청구와 12개월의 계약을 제공하는 구독 ID를 전달하세요. billingPlanType: 'monthly'.
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
await NativePurchases.purchaseProduct({
productIdentifier: 'com.example.premium.monthly',
planIdentifier: 'monthly-plan',
productType: PURCHASE_TYPE.SUBS,
});
iOS 월간 약속 구독
iOS 버전에서 지원되는 경우, StoreKit은 12개월의 약속과 함께 월간 청구 계획을 노출할 수 있습니다. pricingTerms구매 전 paywall에 다음 항목을 표시하세요.
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['com.example.premium.yearly'],
productType: PURCHASE_TYPE.SUBS,
});
const yearlyProduct = products.find(
(product) => product.identifier === 'com.example.premium.yearly',
);
const monthlyCommitment = yearlyProduct?.pricingTerms?.find(
(term) => term.billingPlanType === 'monthly',
);
if (yearlyProduct && monthlyCommitment) {
console.log('Monthly price:', monthlyCommitment.billingDisplayPrice);
console.log('Total commitment:', monthlyCommitment.commitmentInfo?.priceString);
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: yearlyProduct.identifier,
productType: PURCHASE_TYPE.SUBS,
billingPlanType: 'monthly',
});
console.log('Billing plan:', transaction.billingPlanType);
console.log('Commitment ends:', transaction.commitmentInfo?.expirationDate);
}
Full Reference
- GitHub: https://github.com/Cap-go/capacitor-native-purchases/
- 문서: /docs/plugins/native-purchases/
- iOS 월간 약속 안내서: /docs/plugins/native-purchases/ios-monthly-commitment/
@capgo/native-purchases를 사용하여 계속하세요.
__CAPGO_KEEP_0__을 사용하는 경우 @capgo/native-purchases를 사용하여 결제와 구매를 계획하고 싶다면, 이를 연결하세요. @capgo/native-purchases for the implementation detail in @capgo/native-purchases, Getting Started for the implementation detail in Getting Started, Capgo Pricing for the product workflow in Capgo Pricing, Payment system for the implementation detail in Payment system, and Revenue Playbook for the implementation detail in Revenue Playbook.