1번: 현재 코드가 이미 processProductGrant에서 return true만 하고 있고, 주문 생성은 onEvent에서 beacon으로 처리하고 있습니다. 그런데 processProductGrant 자체가 호출되지 않는 상황입니다. QR 업로드 테스트(intoss-private) 환경에서 앱스토어 결제 승인까지 진행되지만, 콜백이 실행되지 않습니다. 혹시 QR 업로드 테스트 환경에서 IAP 콜백이 정상 동작하는지 확인 가능하신가요?
2번: CORS는 Access-Control-Allow-Origin: *, Methods: GET/POST/OPTIONS, Headers: Content-Type/Authorization으로 설정되어 있고, OPTIONS preflight도 204로 응답합니다. 일반 브라우저에서는 정상 동작하며, 미니앱 WebView에서만 Load failed가 발생합니다. sendBeacon과 iframe form POST는 정상 동작하는 걸로 봐서 WKWebView의 네트워크 제한으로 보이는데, 혹시 다른 원인이 있을 수 있을까요?
1번: 현재 코드가 이미 processProductGrant에서 return true만 하고 있고, 주문 생성은 onEvent에서 beacon으로 처리하고 있습니다. 그런데 processProductGrant 자체가 호출되지 않는 상황입니다. QR 업로드 테스트(intoss-private) 환경에서 앱스토어 결제 승인까지 진행되지만, 콜백이 실행되지 않습니다. 혹시 QR 업로드 테스트 환경에서 IAP 콜백이 정상 동작하는지 확인 가능하신가요?
2번: CORS는 Access-Control-Allow-Origin: *, Methods: GET/POST/OPTIONS, Headers: Content-Type/Authorization으로 설정되어 있고, OPTIONS preflight도 204로 응답합니다. 일반 브라우저에서는 정상 동작하며, 미니앱 WebView에서만 Load failed가 발생합니다. sendBeacon과 iframe form POST는 정상 동작하는 걸로 봐서 WKWebView의 네트워크 제한으로 보이는데, 혹시 다른 원인이 있을 수 있을까요?
추가 확인사항입니다. 별도로 Server 승인 모델(returnUrl POST 방식)로 결제를 구현했더니 결제 인증 → 승인 → DB 업데이트 → 리다이렉트까지 정상 작동합니다. 이 방식은 fetch를 쓰지 않아서 WebView 통신 제한에 영향을 안 받는 것 같습니다. 결국 processProductGrant 콜백 미호출 문제만 남은 상태인데, QR 업로드 테스트 환경에서 IAP 콜백이 정상 동작하는 사례가 있는지 확인 부탁드립니다. 아니면 출시 검토 요청 후 프로덕션에서 테스트하는 게 나을까요?
이미 테스트했습니다. processProductGrant, onEvent, onError 각각에 navigator.sendBeacon으로 서버에 디버그 로그를 전송하도록 했는데, 세 곳 모두 서버에 요청이 도달하지 않았습니다. 콜백 자체가 호출되지 않는 상황입니다. 또한 processProductGrant에서 아무것도 하지 않고 return true만 해도 동일한 증상입니다. 앱스토어 결제 승인까지 진행되고 실제 출금도 되지만, 이후 결제가 실패했습니다 바로 뜨고 환불을 해야하는 상황이 화면이 표시됩니다.