본문으로 건너뛰기
버전: 5.18.8

GetRefundList

public BackendReturnObject GetRefundList(int limit = 10, int offset = 0, RefundSortOrder orderBy = RefundSortOrder.DESC);
public BackendReturnObject GetRefundList(string gamerId, int limit = 10, int offset = 0, RefundSortOrder orderBy = RefundSortOrder.DESC);

설명

스토어(Google Play, Apple App Store, ONE Store)에서 환불이 이루어지면 뒤끝 콘솔에 환불 내역이 자동으로 등록됩니다. GetRefundList를 호출하면 해당 유저의 환불 목록을 조회할 수 있습니다.

환불 목록을 통해 게임 내에서 다음과 같은 처리를 구현할 수 있습니다.

  • 환불된 상품의 아이템 회수
  • 악의적 환불 유저에 대한 계정 차단
  • 환불 이력 UI 표시
사전 준비

뒤끝 콘솔에서 스토어 설정이 완료되어 있어야 합니다. 스토어 설정이 완료되면 스토어에서 발생한 환불이 자동으로 환불 목록에 노출됩니다.

파라미터

ValueTypeDescriptiondefault
gamerIdstring뒤끝 로그인 없이 조회 시 게이머 ID
(커스텀 인증 사용 시)
-
limitint조회할 최대 건수10
offsetint조회 시작 위치 (페이징)0
orderByRefundSortOrder정렬 순서DESC

RefundSortOrder

설명
DESC최신순 (내림차순)
ASC오래된순 (오름차순)

Example

기본 조회

BackendReturnObject bro = Backend.Refund.GetRefundList();

if (bro.IsSuccess())
{
var json = bro.GetReturnValuetoJSON();
var rows = json["rows"];

for (int i = 0; i < rows.Count; i++)
{
var row = rows[i];
string orderId = row["orderID"].ToString();
string orderStatus = row["orderStatus"].ToString();
string refundAt = row["refundAt"].ToString();

// details에는 영수증 검증 시 AddDetail로 저장한 정보가 포함
var details = JsonMapper.ToObject(row["details"].ToString());
string itemId = details["itemId"].ToString();
string itemName = details["itemName"].ToString();

Debug.Log($"환불 내역: {itemId}({itemName}) - 상태: {orderStatus}");
}
}
else
{
Debug.LogError("환불 목록 조회 실패: " + bro.GetMessage());
}

페이징 및 정렬

// 최신순으로 20건 조회, 두 번째 페이지
BackendReturnObject bro = Backend.Refund.GetRefundList(
limit: 20,
offset: 20,
orderBy: RefundSortOrder.DESC
);

커스텀 인증 사용 시

string gamerId = "게이머ID";

BackendReturnObject bro = Backend.Refund.GetRefundList(gamerId);

if (bro.IsSuccess())
{
var json = bro.GetReturnValuetoJSON();
Debug.Log($"환불 목록: {json["rows"].Count}건");
}

ReturnCase

Success cases

statusCodemessagereturnValue
200SuccessGetReturnValuetoJSON 참조

GetReturnValuetoJSON

{
"rows": [
{
"orderID": "GPA.1234-5678-9012-34567",
"orderStatus": "REFUNDED",
"refundAt": "2026-01-23T06:06:18.000Z",
"details": "{\"itemId\":\"10001\",\"itemName\":\"골드 100개\",\"iconAddress\":\"icon_gold\"}"
},
{
"orderID": "GPA.9876-5432-1098-76543",
"orderStatus": "REFUND_COMPLETED",
"refundAt": "2026-01-22T10:30:00.000Z",
"details": "{\"itemId\":\"10002\",\"itemName\":\"빨간 보석 50개\"}"
}
]
}

응답 필드

필드설명
orderID스토어 주문 ID
orderStatus환불 처리 상태
(아래 상태값 표 참조)
refundAt환불 발생 시각
details영수증 검증 시 AddDetail로 저장한 상세 정보
(itemId, itemName 등이 JSON string으로 포함)

orderStatus 상태값

상태값설명
PURCHASED구매 완료
REFUNDED환불됨 (스토어에서 환불 발생)
NOTIFICATION_SENT환불 알림 발송됨
REFUND_COMPLETED회수 처리 완료
REFUND_EXCLUDED환불 제외 처리
BLOCKING_EXCLUDED차단 제외 처리
OTHER기타

Error cases

statusCodeerrorCode설명
401InvalidSession인증 세션이 유효하지 않은 경우
로그인이 필요합니다