ProcessProductGrant 동기 콜백에 대한 변경 요청

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

질문 / 문제 해결

내용을 설명해주세요

개발 환경: Unity WebGL

내용
AIT.IAPCreateOneTimePurchaseOrder() 호출 이후에 사용자의 결제 완료시점에 내부적으로 확인하고 있는 서버의 영수증 검증 API를 호출하여 해당 성공 유무에 따라 ProcessProductGrant의 return 값을 결정하려고 합니다.

하지만 ProcessProductGrant의 타입이 Func<object, object> 로 되어 있습니다.

비동기 완료 통지가 없기 Unity 영역에서의 어떤 방법을 통해서 서버측 API 호출 결과를 기다릴 방법이 존재하지 않습니다.

서버 API 호출 결과에 따라 상품 지급 성공 여부를 결정하려면 최소한 ProcessProductGrant의 타입이 Func<object, Task> 으로 변경될 필요가 있어 보입니다.

혹시 위 내용에 대해서 지원이 가능한지 확인 부탁드립니다.

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

안녕하세요

내부적으로 확인해 본 결과 processProductGrant의 JS 원본 타입으로 그대로 Unity SDK에서 포팅 해준다고 하더라도 native 오버레이가 상품 결제 요청 ~ 지급(processProductGrant callback 호출) 사이에 native overlay가 뜨기 때문에 UnityWebRequest로 사내 server api 호출을 통한 지급 처리 여부를 결정하는 로직은 사용 불가하다고 판단했습니다.

일단 native 오버레이가 뜨는 순간 Unity WebGL 환경에서의 player loop가 동작하지 않고 (window.requestAnimationFrame()) 그렇기 때문에 Unity object를 통한 비동기 요청, 대기는 앱인 토스 측에서 전체 비지니스 로직과 결제의 사용자 경험을 수정하지 않는 한 어렵다고 판단했습니다.

이에 대해 앱인 토스 측의 의견이 궁금합니다.