이 글의 성격은 무엇인가요?
질문 / 문제 해결
내용을 설명해주세요
환경
- @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 레퍼런스)와 동일하게 구현
질문
- SDK 2.x + RN 0.84 환경의 샌드박스에서 processProductGrant params가 빈 객체로 내려오는 것이 알려진 이슈인지 확인 부탁드립니다.
- 현재 사용 중인 샌드박스 앱 빌드가 SDK 2.x IAP flow를 완전히 지원하는 버전인지 확인 부탁드립니다.
- 혹시 추가로 확인해야 할 설정이나 조건이 있다면 안내 부탁드립니다.
감사합니다.
appName (선택)
mock-coin