이 글의 성격은 무엇인가요?
질문 / 문제 해결
내용을 설명해주세요
안녕하세요.
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
확인 요청:
- 이와 같은 stale pending order를 파트너 측에서 제거할 수 있는 공식 방법이 있는지
completeProductGrant()호출 후에도 pending order가 남는 것이 정상인지- 토스 측에서 해당 pending order를 초기화/정리해주실 수 있는지
getPendingOrders()와get-order-status결과가 불일치하는 원인이 무엇인지
필요하시면 앱 로그와 서버 로그도 추가로 전달드리겠습니다.
감사합니다.