플러팅 AI/React-native

offerToken is required for constructing ProductDetailsParams for subscriptions 에러 해결 방법

Solo.dev 2025. 1. 14. 03:24

문제 및 해결 방법 정리

문제

  1. 에러 메시지:
    • offerToken is required for constructing ProductDetailsParams for subscriptions 에러가 발생.
  2. 상황:
    • requestSubscription 호출 시 offerIdToken 필드에 offerToken 값을 전달했음.
    • 로그 상으로 offerToken은 제대로 가져오고 있었으나, 구매 요청에서 에러 발생.
  3. 원인:
    • requestSubscription 호출 시 매개변수 이름이 잘못 설정됨:
      • 잘못된 필드 이름: offerIdToken.
      • 올바른 필드 이름: offerToken.

해결 방법

  1. 수정 내용:
    • 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, // 올바른 필드 }, ], });
  2. 테스트 결과:
    • 수정 후, offerToken을 offerToken 필드로 전달하여 문제 없이 작동.

최종 코드

수정된 코드:

const purchase = await RNIap.requestSubscription({ sku: productId, subscriptionOffers: [ { sku: productId, offerToken: offerToken, // 필드 이름 수정 }, ], });

 


결론

  • 문제의 원인은 offerToken 전달 시 필드 이름 오류.
  • offerToken을 **offerIdToken이 아닌 offerToken**으로 전달하여 해결.
  • 수정 후 정상적으로 구독 요청이 처리되었음.

이제 코드가 완벽히 작동할 것입니다. 추가 질문이 있다면 말씀해주세요! 😊