토스 결제에 대한 문의

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

질문 / 문제 해결

내용을 설명해주세요

유니티로 개발중이고 SDK버전은 2.4.7버전입니다
아직 게임을 출시하지 않을 상태이고 샌드박스 앱으로 해볼수가 없어서 QR로 앱을 실행하여 결제 테스트를 진행을 시도하였습니다.
등록 된 상품을 결제하였고 실제로 돈도 지불되고 콘솔 결제 내역에도 결제에 대한 내역이 노출이 되었습니다.
그런데 결제 진행도중 토스 결제화면에서 로딩이 오래지속되다가 첨부한 이미지와 같이 문제가 발생이 되었다고 화면이 변경되었습니다.
게임 내에서는 결제처리가 완전히 끝나지 않아서 상품수령은 되지 않은 상태이고 환불 가이드에 따라서 토스 앱에서 미니앱의 프로필에 가보았지만 구매 내역에는 아무런 내역이 없었습니다.

출시 전에 결제에 대한 테스트를 확인을 해야 하는데 해당 문제를 해결하기 위해서 제가 어떻게 해야하는지 알고싶습니다.

appName (선택)

bricksbreakerhit

이미지 첨부

안녕하세요 :slight_smile:
혹시 사용하시는 토스앱 버전을 알 수 있을까요 ?
최신 버전으로 업데이트 후 재시도 부탁 드려도될까요?

토스 앱은 5.257.1 최신버전으로 테스트했었습니다.

혹시 인앱결제의 processProductGrant 콜백 부분을 공유해주실 수 있을까요 ?
결제 성공 후 30초내에 processProductGrant 콜백이 호출되지 않거나 해당 콜백의 결과가 true가 아닐 경우 해당 페이지가 노출됩니다.

var options = new IapCreateOneTimePurchaseOrderOptionsOptions
{
Sku = sku,
ProcessProductGrant = (data) =>
{
Debug.Log($“상품 지급: {data}”);
bool grantSuccess = GrantProductWithServerValidation(data);

            return grantSuccess;
        }
    };

GrantProductWithServerValidation 함수는 결제 정보에 대해서 별도로 저장을 하려고 만들어 놓은 함수인데 저 부분이 진행이 안되어서 에러가 난걸까요?
저는 해당 부분이 토스 결제화면이 끝나고 앱 화면으로 돌아오고 실행되는 것으로 생각을 했는데 결제화면에서 실행이 되는게 맞는건가요?

결제 화면 이후 30초 내에 저 함수가 호출되지 않으면, 에러 화면이 나옵니다.
GrantProductWithServerValidation 가 정상적으로 이뤄졌는지 로그 확인해봐주실 수 있나요 ?

결제 정보에 대한 로그를 확인하고 진행하려고 현재는 함수를 들어가도 false로 반환이 되고 있었습니다.

말씀해주신대로면 false로 반환이 되어서 이후 진행이 되지 않아 문제가 발생된 것으로 이해했습니다.

제가 하려고 했던거는 토스 결제화면이 끝나고 앱으로 들아왔을 때 거래 ID 혹은 영수증 번호와 같은 값을 저희 서버에 저장을 하고 싶었는데 토스 결제가 끝났다는걸 Purchase 함수가 완전히 끝나고 해야하는걸까요?

자체 서버를 호출하여 저장하는 로직(GrantProductWithServerValidation)의 결과가 true이고, 그 결과값을 30초내에 반환해주시면 문제는 없을 것 같습니다.

네, 감사합니다. 수정해서 다시 확인해보겠습니다.