구독 결제가 invalid_product_id로 실패합니다 (소모품은 정상)

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

질문 / 문제 해결

내용을 설명해주세요

appName: onedayflex
miniAppId: 59736
SDK: @apps-in-toss/web-framework 2.10.8
환경: Android, getOperationalEnvironment() = toss

[증상]

구독 상품 구매 버튼을 누르면 결제창은 정상적으로 뜹니다.
구매하기를 누르면 "상품을 살 수 없어요"가 뜨고 중단됩니다.

createSubscriptionPurchaseOrder의 onError로 오는 원문입니다.
INVALID_PRODUCT_ID: 유효하지 않은 상품 ID이거나, 해당 상품이 존재하지 않습니다.

같은 앱의 소모품 상품은 플레이스토어 결제창까지 정상 연결됩니다. 구독만 실패합니다.
라이브 번들(20260804-17)과 테스트 번들 모두 동일합니다.


토스 서버는 주문을 정상 인식하고 있습니다.

getProductItemList()는 구독 상품을 정상적으로 내려줍니다.
그 목록에서 받은 객체의 sku를 그대로 결제에 넘깁니다.
실제 전달값을 JSON으로 찍어 확인했고 숨은 문자는 없습니다.

{“sku”:“sub.1a3c.mse8i6g4.62b0c1b31b”,“offerId”:null}

그런데 같은 주문을 파트너 API로 조회하면 결과가 다릅니다.
POST /api-partner/v1/apps-in-toss/order/get-order-status

f33999a5-7f5f-4825-9131-df48c12c3f07
sku: sub.1a3c.mse8i6g4.62b0c1b31b
status: ORDER_IN_PROGRESS
reason: 진행 중인 주문입니다.

d5a6f271-4067-4f08-b0ee-0b4c8178e950
sku: sub.1a3c.mselhrub.5d5f63c205
status: ORDER_IN_PROGRESS

e14e7831-3762-436e-b6ec-367b364d301e
sku: sub.1a3c.mse9d4eb.54a310c952
status: ORDER_IN_PROGRESS
offerId: sub-1a3c-mse9d4eb-54a310c952-base-plan-ft

NOT_FOUND도 MINIAPP_MISMATCH도 아니고 ORDER_IN_PROGRESS이며 sku도 정확합니다.
토스 서버는 상품을 알고 주문까지 만들었는데,
클라이언트 SDK는 같은 주문에 대해 존재하지 않는 상품이라고 답합니다.

실패한 주문 3건이 계속 ORDER_IN_PROGRESS로 남아 있습니다.

혹시 몰라 다음 사항들을 모두 확인했으나, 문제는 없었습니다.

  • sku 값 스토어 목록 객체에서 직접 꺼내 전달, JSON 확인 결과 이상 없음
  • offerId 없음(null) / 무료체험 / 신규할인 모두 동일
  • 금액 0원(무료체험), 2,000원(신규할인), 3,850원(정가) 모두 동일
  • minDeploymentId 비운 상품, 라이브 배포로 지정한 상품 모두 동일
  • 상품 생성 시점 9시간 지난 상품도 동일 (정상 동작하는 소모품과 같은 시각 생성)
  • 앱 버전 isMinVersionSupported({android:‘5.253.0’, ios:‘5.250.0’}) = true
  • SDK 최신 3.0.2와 구독 API 규격이 동일함을 확인
  • 호출 형식 문서 명세와 일치 (sku 필수, offerId 선택, processProductGrant/onEvent/onError 필수)
  • 상품 상태 판매중, 검수 승인
  • 계정 상태 사업자 인증 APPROVED, 정산 승인 완료, releaseDecision ALLOWED

[질문]

  1. 이 앱의 구독 상품이 스토어에 정상 등록되어 있는지 확인 부탁드립니다.
    토스 서버는 sku를 인식하는데 클라이언트에서만 INVALID_PRODUCT_ID가 나는 상태입니다.

  2. 콘솔이 발급한 sku와 실제 스토어 상품 ID가 어긋나 있을 가능성이 있는지 궁금합니다.

  3. ORDER_IN_PROGRESS로 남은 주문 3건은 어떻게 정리해야 하는지 알려주세요.

고통을 멈추고 싶습니다..

appName (선택)

onedayflex

이미지 첨부

안녕하세요 :slight_smile:
빠르게 확인해보겠습니다!

감사합니다.

홍보를 앞둔 상황에서 발생한 치명적인 문제라, 사용자 경험 방해가 우려됩니다.

(커뮤니티 글 중에 샌드박스 문제가 자주 보여, 샌드박스 문제가 의심되어 런칭을 예상보다 빠르게 진행했습니다.)

혹시 빠른 확인을 부탁드려도 될까요?

신경써주셔서 감사합니다.

원인 추정 완료했습니다.

구글 계정 정보에 따른 차이인 것으로 보여집니다.

감사합니다.