플러팅 AI/React-native
offerToken is required for constructing ProductDetailsParams for subscriptions 에러 해결 방법
Solo.dev
2025. 1. 14. 03:24
문제 및 해결 방법 정리
문제
- 에러 메시지:
- 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**으로 전달하여 해결.
- 수정 후 정상적으로 구독 요청이 처리되었음.
이제 코드가 완벽히 작동할 것입니다. 추가 질문이 있다면 말씀해주세요! 😊