DateP

구독 로직 테스트 정리

Solo.dev 2025. 4. 5. 00:28
구독 로직 테스트 정리

✨ 구독 로직 테스트 정리 (2025.04.04)

오늘 한 작업

오늘은 구독 로직을 테스트하기 위해 Google Play Console에서 인앱 구독 상품을 생성하고, 로컬 환경에서 테스트를 진행한 후 문제를 분석했습니다. 이후 비공개 테스트(Closed Testing)에 앱을 업로드한 상태입니다.

 

1. 인앱 구독 상품 생성

Play Console에서 datep_subscribe라는 구독 상품을 생성했습니다.

  • Basic 플랜: 3일 무료 체험 + ₩7,000/월, 무료 체험 없는 옵션(₩7,000/월).
  • Premium 플랜: 3일 무료 체험 + ₩14,000/월, 무료 체험 없는 옵션(₩14,000/월).
  • 목적: 구독 로직 테스트를 위한 기반 마련.

 

2. 구독 로직 점검

startPurchase.ts에서 datep_subscribe를 사용해 구독 상품 조회 및 결제 요청 로직을 점검했습니다.

  • getSubscriptionDetails에서 subscriptions 데이터를 로그로 확인: datep_subscribe에 Basic과 Premium 플랜의 subscriptionOfferDetails 포함.
  • 현재 첫 번째 offerToken (Basic, 3일 무료 + ₩7,000/월)이 기본으로 선택되어 결제 UI에 전달.
  • 결과: 구독 로직 기본 작동, Google Play 결제 UI 호출 성공.
  • 문제: "구입 항목을 찾을 수 없다" 오류 발생 → Android Studio 릴리스 빌드 직접 설치 환경 때문으로 추정.

 

3. 로컬 테스트 문제 발견 및 비공개 테스트 준비

로컬 빌드 앱(Play Store 다운로드 X)으로 테스트 시 문제가 발생했습니다.

  • 문제: Play Store와 연결 끊김 → 결제 불가, "구입 항목을 찾을 수 없다" 오류.
  • 해결 방안: Play Console에서 비공개 테스트 트랙에 앱 업로드, Play Store 다운로드 후 테스트 필요.
  • 현재 상태: 비공개 테스트에 앱 업로드 완료, 테스터 계정 추가 및 Play Store 배포 대기 중.

 

4. 구독 로직 수정 검토

현재 구독 로직의 한계를 분석하고 수정 방향을 검토했습니다.

  • 현재 상태: PurchaseScreen에서 사용자가 선택한 selectedPlan (Basic/Premium)이 결제 로직에 반영되지 않음.
  • getSubscriptionDetails에서 첫 번째 offerToken만 고정 사용 중.
  • 수정 방향: selectedPlan에 따라 적절한 offerToken 선택 로직 개선.
  • 예: Basic 선택 시 basePlanId: "basic" + offerId: "3-days-free", Premium 선택 시 basePlanId: "premium" + offerId: "3-days-free".

현재 상태 요약

구독 로직: 기본 작동 성공 (결제 UI 호출 가능).

문제점:

  1. 로컬 테스트에서 "구입 항목을 찾을 수 없다" 오류 → Play Store 배포 필요.
  2. 사용자 플랜 선택(selectedPlan)이 결제에 반영되지 않음.

진행 상황: 비공개 테스트에 앱 업로드 완료, Play Store 배포 대기 중.

 

앞으로의 계획

 

1. 비공개 테스트에서 구독 로직 수정 버전 테스트

작업:

  • startPurchasegetSubscriptionDetails 수정: selectedPlan을 반영한 offerToken 선택 로직 추가.
  • 수정된 코드를 App Bundle로 빌드해 Play Console에 업로드.
  • 비공개 테스트 트랙 생성 및 테스터 계정 추가.

목표:

  • Play Store 다운로드 앱으로 결제 로직 정상 작동 확인.
  • "구입 항목을 찾을 수 없다" 오류 해결.

 

2. 구독 로직 검토 및 최적화

작업:

  • 비공개 테스트 후 subscriptions 데이터 및 결제 응답 로그 분석.
  • offerToken 선택 로직 점검: Basic → ₩7,000/월 (3일 무료), Premium → ₩14,000/월 (3일 무료).

목표:

  • 사용자가 선택한 플랜에 따라 올바른 구독 오퍼 적용 확인.

 

3. 사용자 플랜 선택에 따른 결제 UI 제공

작업:

  • PurchaseScreen에서 selectedPlanstartPurchase에 전달.
  • requestSubscription에 선택된 플랜의 offerToken 적용.
  • Google Play 결제 UI가 선택된 플랜의 가격/조건 표시 보장: Basic: ₩7,000/월 (3일 무료), Premium: ₩14,000/월 (3일 무료).

목표:

  • 사용자가 선택한 플랜에 맞는 결제 UI 표시.
  • 결제 완료 후 선택된 플랜 정상 적용.

전체 흐름 정리

 

오늘의 작업

  • 구독 로직 점검: datep_subscribe로 구독 데이터 조회 및 결제 호출 확인.
  • 문제 발견: 로컬 빌드에서 "구입 항목을 찾을 수 없다" 오류 → Play Store 배포 필요성 인지.
  • 비공개 테스트 준비: 앱을 비공개 테스트에 업로드.

 

현재 상태

  • 구독 로직: 기본 작동하나, selectedPlan 반영되지 않음.
  • 테스트 환경: Play Store 배포 없이는 결제 불가 → 비공개 테스트 대기 중.

 

다음 단계

  • 비공개 테스트: 수정된 구독 로직 업로드 후 Play Store 다운로드로 테스트.
  • 로직 개선: selectedPlan에 따라 offerToken 선택 및 결제 UI 반영.
  • 결과: 사용자가 선택한 플랜(Basic/Premium)에 맞는 결제 UI 제공 및 구독 완료.

최종 목표

사용자 경험:

  • PurchaseScreen에서 Basic 또는 Premium 선택 후 "구독" 버튼 클릭.
  • 선택된 플랜에 맞는 offerToken 적용.
  • Google Play 결제 UI에서 해당 플랜의 가격과 조건 표시:
    • Basic: ₩7,000/월 (3일 무료).
    • Premium: ₩14,000/월 (3일 무료).
  • 결제 완료 후 선택된 플랜 정상 적용.