SDK 2.x (RN 0.84) 샌드박스 환경에서 processProductGrant 콜백에 orderId가 전달되지 않는 현상

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

환경

  • @apps-in-tossapps-in-toss/framework: 2.0.1
  • react-native: 0.84.0 / react: 19.2.3
  • @granite-js/react-native: 1.0.4
  • 빌드: ait build
  • 테스트: iOS 실기기 + 최신 샌드박스 앱

증상

콘솔에서 인앱결제 부분에서 상품을 등록해 둔 상태입니다.

IAP.createOneTimePurchaseOrder()의 processProductGrant 콜백이 호출될 때, 공식 문서상 { orderId: string }이 전달되어야 하지만 빈 객체 {}가
전달됩니다.

  // 실제 로그
  [IAP] processProductGrant args count: 1 raw args: [{}]

이로 인해 서버 상품 지급(orderId 기반)을 진행할 수 없고, PRODUCT_NOT_GRANTED_BY_PARTNER → INVALID_DATA 에러로 이어집니다.

호출 코드 (공식 예제와 동일한 구조)

  IAP.createOneTimePurchaseOrder({
    options: {
      sku: 'ait.<상품sku>',
      processProductGrant: async ({ orderId }) => {
        // orderId가 undefined — 빈 객체가 전달됨
        const result = await serverGrant({ orderId, sku });
        return result.ok;
      },
    },
    onEvent: (event) => { /* ... */ },
    onError: (error) => { /* ... */ },
  });

추가 확인 사항

  • getProductItemList() 정상 동작 (콘솔 등록 상품 조회 가능)
  • getPendingOrders() 정상 호출 (이전 테스트 건의 pending order 반환 확인)
  • 콘솔에서 해당 상품 노출 상태 ON, SKU 정상 등록
  • SDK 호출 시그니처는 공식 문서(createOneTimePurchaseOrder 레퍼런스)와 동일하게 구현

질문

  1. SDK 2.x + RN 0.84 환경의 샌드박스에서 processProductGrant params가 빈 객체로 내려오는 것이 알려진 이슈인지 확인 부탁드립니다.
  2. 현재 사용 중인 샌드박스 앱 빌드가 SDK 2.x IAP flow를 완전히 지원하는 버전인지 확인 부탁드립니다.
  3. 혹시 추가로 확인해야 할 설정이나 조건이 있다면 안내 부탁드립니다.

감사합니다.

appName (선택)

mock-coin

안녕하세요 :slight_smile:

동일한 이슈로 보여요.
현재 빌드 심사중이라 조금만 더 기다려주시면 감사하겠습니다 :man_bowing: