이 글의 성격은 무엇인가요?
질문 / 문제 해결
내용을 설명해주세요
SDK: @apps-in-toss/web-framework 2.6.1 / 환경: iOS 토스앱 [버전 기입], 프로덕션 실결제
증상: createSubscriptionPurchaseOrder로 결제하면 결제 완료 후 결제 시트에서 약 30초 로딩되다가 “this-stock-ok에 문제가 생겼어요. 환불을 신청해주세요” 화면이 뜹니다. 환불창에서 뒤로 가면 저희 결제 복구 코드를 통해서 구독은 정상 인식됩니다. 동일 구조의 일회성 결제(createOneTimePurchaseOrder)는 즉시 지급완료되며, 구독에서만 발생합니다.
processProductGrant 구현 (문서 예제대로 동기 즉시 true):
processProductGrant: ({ orderId }) => { saveOrderId(orderId); return true; } 시도(모두 효과 없음):
① 동기 즉시 true
② completeProductGrant({params:{orderId}})를 setTimeout으로 콜백 밖 호출
③ (콜백 안 await는 더 악화)
질문:
구독 결제에서 processProductGrant가 true를 반환해도 주문이 PAYMENT_COMPLETED에 머물고 PURCHASED로 전환되지 않습니다. 구독 주문을 완료 처리하려면 어떤 호출이 필요한가요? completeProductGrant가 구독 주문에도 적용되나요?
**
"30초 로딩"은 네이티브가 processProductGrant 결과를 못 받는 것으로 보입니다. 구독에서 콜백이 정상 수신되는 조건이 있나요?**
일회성과 구독의 미결 판정 로직에 차이가 있나요?
참고: 서버 결제 알림 URL(웹훅)로는 subscription.status_changed(status: ACTIVE, accessGranted: true)를 정상 수신해 권한을 부여 중입니다. 클라이언트 미결 화면만 문제입니다.
예시 orderId: a4409e33-e431-406e-a752-3459f9fe610b
appName (선택)
this-stock-ok