문제 및 해결 방법 정리
문제
- 에러 메시지:
- offerToken is required for constructing ProductDetailsParams for subscriptions 에러가 발생.
- 상황:
- requestSubscription 호출 시 offerIdToken 필드에 offerToken 값을 전달했음.
- 로그 상으로 offerToken은 제대로 가져오고 있었으나, 구매 요청에서 에러 발생.
- 원인:
- requestSubscription 호출 시 매개변수 이름이 잘못 설정됨:
- 잘못된 필드 이름: offerIdToken.
- 올바른 필드 이름: offerToken.
- requestSubscription 호출 시 매개변수 이름이 잘못 설정됨:
해결 방법
- 수정 내용:
- requestSubscription 호출 시 매개변수 이름을 offerIdToken에서 offerToken으로 변경.
- 기존 코드:
const purchase = await RNIap.requestSubscription({ sku: productId, subscriptionOffers: [ { sku: productId, offerIdToken: offerToken, // 잘못된 필드
- 수정된 코드:
const purchase = await RNIap.requestSubscription({ sku: productId, subscriptionOffers: [ { sku: productId, offerToken: offerToken, // 올바른 필드 }, ], });
- 테스트 결과:
- 수정 후, offerToken을 offerToken 필드로 전달하여 문제 없이 작동.
최종 코드
수정된 코드:
const purchase = await RNIap.requestSubscription({ sku: productId, subscriptionOffers: [ { sku: productId, offerToken: offerToken, // 필드 이름 수정 }, ], });
결론
- 문제의 원인은 offerToken 전달 시 필드 이름 오류.
- offerToken을 **offerIdToken이 아닌 offerToken**으로 전달하여 해결.
- 수정 후 정상적으로 구독 요청이 처리되었음.
이제 코드가 완벽히 작동할 것입니다. 추가 질문이 있다면 말씀해주세요! 😊
'플러팅 AI > React-native' 카테고리의 다른 글
| 구매 복원 기능 요약 (0) | 2025.01.14 |
|---|---|
| 오류 메시지: purchase is not suitable to be purchased RN.IAP android (0) | 2025.01.14 |
| Android IAP 사용 시 NullPointerException 에러 해결 방법 (0) | 2025.01.14 |
| Firebase를 통한 Google 로그인이 내부 테스트 트랙에서 작동하지 않는 문제 (0) | 2025.01.11 |
| RN iOS 구독 결제 문제 해결 (1) | 2025.01.11 |