메인 콘텐츠로 건너뛰기
플러그인으로 돌아가기
@capgo/native-purchases
튜토리얼
@capgo/native-purchases

네이티브 구매

API native 앱 내 구매, 구독 및 iOS StoreKit 의무 청구 계획을 간단한 방법으로 구현하세요.

가이드

Native 구매에 대한 튜토리얼

@capgo/native-purchases 사용

앱 내 구독이 쉬워졌습니다.

설치

bun add @capgo/native-purchases
bunx cap sync

What This Plugin Exposes

  • restorePurchases - 사용자의 이전 데이터를 복원하고 사용자 ID를 연결합니다. 사용자 ID가 동일한 다른 사용자도 사용합니다.
  • getAppTransaction - 사용자가 앱을 처음 다운로드하거나 구매한 날짜에 대한 정보를 제공하는 앱 거래 정보를 가져옵니다.
  • isEntitledToOldBusinessModel - 앱 거래에서 원래 앱 버전을 대상 버전과 비교하여 사용자가 이전 비즈니스 모델에서 특정 기능에 대한 권한이 있는지 결정합니다.
  • getProducts - iOS 구독 가격 조건을 포함하여 스토어 제품 메타데이터를 로드합니다.
  • purchaseProduct - 선택한 제품과 청구 계획에 대한 구매 프로세스를 시작합니다.

예시 사용법

restorePurchases

사용자의 이전 데이터를 복원하고 사용자 ID를 연결합니다. 사용자 ID가 동일한 다른 사용자도 사용합니다.

import { NativePurchases } from '@capgo/native-purchases';

await NativePurchases.restorePurchases();

getAppTransaction

사용자가 앱을 처음 다운로드하거나 구매한 날짜에 대한 정보를 제공하는 앱 거래 정보를 가져옵니다.

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

사용자가 이전 비즈니스 모델에서 특정 기능에 대한 권한이 있는지 결정합니다.

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

선택한 제품에 대한 구매 프로세스를 시작합니다. 안드로이드 구독의 경우 Google Play 기본 플랜 ID를 전달하세요. planIdentifier. iOS 월간 결제 약정 지원하는 iOS 구독을 위해 12 개월의 약정 기간이 있는 경우 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);
}

전체 참조

Using @capgo/native-purchases에서 계속 진행하세요.

이러한 기능을 사용하는 경우 Using @capgo/native-purchases to plan payments and purchases, connect it with @capgo/native-purchases for the implementation detail in @capgo/native-purchases, Getting Started Getting Started 구현 세부 사항 Capgo 가격 정보 for the product workflow in Capgo Pricing, payment system 구현 세부 사항 Revenue Playbook Revenue Playbook 구현 세부 사항 Footer