가이드
Capacitor에서 Native Purchases 사용법
@capgo/native-purchases 사용하기
간편한 인앱 구독 구현
설치
bun add @capgo/native-purchases
bunx cap sync
플러그인이 제공하는 기능
restorePurchases- 사용자의 이전 구매 내역을 복원하고, 해당 appUserID를 동일한 정보를 사용하는 다른 사용자와 연결합니다.getAppTransaction- 사용자가 앱을 처음 다운로드하거나 구매한 시점에 대한 상세 정보를 제공하는 App Transaction 정보를 가져옵니다.isEntitledToOldBusinessModel- App Transaction의 원본 앱 버전과 대상 버전을 비교하여, 사용자가 이전 비즈니스 모델의 기능을 사용할 권한이 있는지 확인합니다.getProducts- 지원되는 iOS 구독 가격 정책을 포함하여 스토어 제품 메타데이터를 로드합니다.purchaseProduct- 선택한 제품 및 결제 플랜에 대한 구매 프로세스를 시작합니다.
사용 예시
restorePurchases
사용자의 이전 구매 내역을 복원하고, 해당 appUserID를 동일한 정보를 사용하는 다른 사용자와 연결합니다.
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 base plan ID를 planIdentifier전달하세요. 12개월 약정 월간 결제를 제공하는 지원 대상 iOS 구독의 경우 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구매 전 페이월에 다음 약관을 표시하세요:
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);
}
전체 레퍼런스
- 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/native-purchases 사용하기 결제와 구매를 계획하려면 다음을 연결하세요 @capgo/native-purchases @capgo/native-purchases의 구현 상세 내용은 시작하기 Getting Started의 구현 상세 내용은 Capgo 가격 Capgo 가격 페이지의 제품 워크플로우, 결제 시스템 결제 시스템의 구현 상세 내용은, 수익화 플레이북 Revenue Playbook의 구현 상세 내용은