본문으로 건너뛰기

IAP.getCompletedOrRefundedOrders

인앱결제로 완료되거나 환불된 주문 목록을 가져옵니다. 페이지네이션을 지원하며, hasNextnextKey로 다음 페이지를 순차 조회할 수 있습니다.

시그니처

getCompletedOrRefundedOrdersIAP 네임스페이스 객체의 멤버로 노출됩니다.

import { IAP } from '@apps-in-toss/web-framework';

declare const IAP: {
getCompletedOrRefundedOrders(): Promise<{
hasNext: boolean;
nextKey?: string | null;
orders: {
orderId: string;
sku: string;
status: 'COMPLETED' | 'REFUNDED';
date: string;
}[];
}>;
// ...overview 참고
};

파라미터

없음.

반환값

Promise<CompletedOrRefundedOrdersResult> — 페이지네이션 포함 주문 목록 객체.

필드타입설명
hasNextboolean다음 페이지 존재 여부. true면 더 많은 주문이 있습니다.
nextKeystring | null (옵션)다음 페이지 조회용 키. 마지막 페이지이면 null이거나 생략됩니다.
ordersarray주문 정보 배열.
orders[].orderIdstring주문 고유 ID.
orders[].skustring상품 고유 ID.
orders[].status'COMPLETED' | 'REFUNDED'주문 상태.
orders[].datestringISO 8601 날짜 문자열. COMPLETED면 구매일, REFUNDED면 환불일.

앱 버전이 최소 지원 버전(Android 5.231.0 / iOS 5.231.0)보다 낮으면 undefined를 반환할 수 있습니다.

권한

권한이 필요하지 않습니다 — IAP 네임스페이스는 별도의 PermissionName에 바인딩되지 않습니다.

예제

최소 예제

import { IAP } from '@apps-in-toss/web-framework';

const result = await IAP.getCompletedOrRefundedOrders();
console.log(result?.orders);

실전 예제 — 전체 페이지 순회

import { IAP } from '@apps-in-toss/web-framework';

async function fetchAllOrders() {
const allOrders: { orderId: string; sku: string; status: string; date: string }[] = [];

const result = await IAP.getCompletedOrRefundedOrders();
if (!result) return allOrders;

allOrders.push(...result.orders);

// 현재 SDK는 nextKey 파라미터를 받는 오버로드를 노출하지 않으므로
// hasNext는 UI 표시용으로만 활용하세요.
if (result.hasNext) {
console.log('추가 페이지 있음 — nextKey:', result.nextKey);
}

return allOrders;
}

직접 실행해 보기

sdk-example의 IAP 페이지 "주문 관리" 단계에서 이 API를 실행해 볼 수 있습니다.

sdk-example에서 실행해 보기

관련 API

관련 가이드

외부 참조