SDK 2.0.5 getPendingOrders 잔존 주문 제거 불가 이슈

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

질문 / 문제 해결

내용을 설명해주세요

안녕하세요.

sdk 2.0.5에서 Apps in Toss 인앱결제 연동 중 getPendingOrders()에 남아 있는 주문이 서버 주문 상태 조회 API에서는 NOT_FOUND로 조회되고, completeProductGrant() 호출 후에도 제거되지 않는 문제가 있어 문의드립니다.

증상:

  • 앱의 IAP.getPendingOrders()에서는 아래 주문이 계속 조회됩니다.
    • orderId: 550e8400-e29b-41d4-a716-446655440000
    • sku: sku_106
  • 서버에서 같은 orderId로 order/get-order-status를 조회하면 아래처럼 반환됩니다.
    • tossStatus: NOT_FOUND
    • tossReason: 주문을 찾지 못했어요.
  • 개발용 정리 로직으로 completeProductGrant({ params: { orderId } })를 호출한 뒤에도,
    동일 주문이 getPendingOrders()에서 계속 남아 있습니다.
  • 이 주문이 남아 있는 동안 새 인앱결제 진행도 막히고 있습니다.

기대한 동작:

  • pending order라면 completeProductGrant() 호출 후 제거되어야 하거나,
  • 최소한 getPendingOrders() 결과와 서버 주문 상태 조회 결과가 일치해야 한다고 이해하고 있습니다.

실제 동작:

  • getPendingOrders()에는 주문이 계속 남아 있음
  • 서버 주문 상태 조회는 NOT_FOUND
  • completeProductGrant() 이후에도 pending order가 사라지지 않음

재현 정보:

  • orderId: 550e8400-e29b-41d4-a716-446655440000
  • sku: sku_106

확인 요청:

  1. 이와 같은 stale pending order를 파트너 측에서 제거할 수 있는 공식 방법이 있는지
  2. completeProductGrant() 호출 후에도 pending order가 남는 것이 정상인지
  3. 토스 측에서 해당 pending order를 초기화/정리해주실 수 있는지
  4. getPendingOrders()get-order-status 결과가 불일치하는 원인이 무엇인지

필요하시면 앱 로그와 서버 로그도 추가로 전달드리겠습니다.
감사합니다.

안녕하세요 :slight_smile:
혹시 샌드박스앱으로 테스트를 해주신걸까요 ?

안녕하세요!
넵 실기기 샌드박스앱으로 테스트하고 있습니다!

샌드박스앱에서 내려가는 정보들은 mock 데이터라 그러셨을거같아요 :cry:
참고용으로만 봐주시면 감사하겠습니다.