결제
결제 모듈은 게임 내 아이템 구매 및 완전 구매(买断) 결제 기능을 제공합니다.JOGOS_SDK 소개 페이지에서 사용 중인 엔진 관련 내용을 읽은 후 아래와 같이 사용하세요.
javascript
window.JOGOS_SDK.payment;인앱 구매
1단계: 상품 ID 생성
- 개발자 대시보드 Information / Purchase 페이지에서 상품을 생성합니다.
- 동일 게임 내 상품 ID는 중복될 수 없습니다.
2단계: 주문 발행
- 플레이어가 게임 내 아이템을 구매할 때 상품 구매 버튼에 이 인터페이스를 연결하면 Jogos 결제 창이 열립니다.
- 상품 ID를 전달하면 결제 창 열기 성공 시 주문 번호가 반환되며, 이 번호로 추후 주문 정보를 조회할 수 있습니다.
- goodsId는 개발자 대시보드에서 생성한 상품 ID입니다.
javascript
// 성공 시 주문 번호 반환
let orderNo = await window.JOGOS_SDK.payment.buyGoods(goodsId: string);3단계: 사용자 결제 대기
클라이언트에서 주문 결제 완료 알림 구독
플레이어가 주문한 후 실제 결제 성공까지 시간이 다소 소요될 수 있습니다. 개발자는 이 인터페이스를 통해 플레이어 결제 성공 메시지를 구독할 수 있습니다(초기화 후 호출). 플레이어 결제가 성공하면 플랫폼은 콜백을 통해 개발자에게 주문이 완료되었음을 알리고 최신 주문 정보를 반환합니다
javascript
window.JOGOS_SDK.payment.subscribeOrderPaid(callbackFn: (order: PaymentOrder) => void);4단계: 발송 및 플랫폼에 주문 발송 완료 알림
클라이언트에서 발송 처리(단독 게임)
개발자는 플레이어 결제 성공을 감지하면 자동으로 보상을 지급하고 이 인터페이스를 호출해 플랫폼에 발송 완료를 알립니다.
javascript
await window.JOGOS_SDK.payment.deliverGoods(orderNo: string);"게임 서버" 연결 방식:
서버 연결 관련 API는 페이지 서버 사이드 연결 인터페이스를 참조하세요.
기타 인터페이스
주문 정보
주문 번호로 상세 정보 조회. 구조는 다음과 같습니다:
javascript
// 결제 주문
export interface PaymentOrder {
// 게임 ID
gameId: number;
// 게임 이름
gameName: string;
// 사용자 ID
userId: number;
// 주문 번호
orderNo: string;
// 상품 ID
productId: string;
// 상품 이름
productName: string;
// 통화
currency: string;
// 국가
country: string;
// 할인
discount: number;
// Jogos 코인 차감
calorcoin: number;
// 결제 금액
paid: number;
// 결제 채널
channel: string;
// 결제 유형
paymentType: string;
// 결제 번호
paymentNo: string;
// 발송 여부
deliverGoods: boolean;
// 주문 상태 pending: 미결제 fail: 실패 cancel: 취소 expire: 만료 success: 성공 refunding: 환불 중 refunded: 환불 완료 refund-fail: 환불 실패
status: 'pending' | 'fail' | 'cancel' | 'expire' | 'success' | 'refunding' | 'refunded' | 'refund-fail';
// 주문 생성 시간
createTime: String;
// 환불 번호
refundNo: String;
// 환불 설명
refundDescription: String;
// 환불 신청 시간
refundTime: String;
// 환불 완료 시간
refundedTime: String;
}주문 정보 조회
javascript
// 성공 시 주문 정보 반환
let order = await window.JOGOS_SDK.payment.getOrderDetail(orderNo: string);주문 목록 조회
개발자는 본 인터페이스로 특정 상태의 주문 목록을 페이징 조회할 수 있으며, 반환되는 각 주문 객체는 상세 조회와 동일한 구조입니다.
javascript
// 성공 시 주문 목록 반환
let orderList = await window.JOGOS_SDK.payment.getOrderList(
status?: 'pending' | 'fail' | 'cancel' | 'expire' | 'success' | 'refunding' | 'refunded',
pageNo?: number, // 페이지 번호, 기본값 1
pageSize?: number // 페이지당 건수, 기본값 20
);买断制 게임
- 개발자 대시보드에서 게임을 “Game Pricing”(买断 타입)으로 설정하고 가격을 입력합니다.
- 두 개의 빌드를 준비합니다: 체험판과 정식판
- 체험판: 플레이어가 접근할 수 없는 스테이지 에셋, 모델, 텍스처, 음악 등을 제거하고 체험만 가능한 콘텐츠만 남겨 별도로 패키징하여 업로드합니다.
- 정식판: 전체 콘텐츠를 이용할 수 있는 빌드입니다.
- 체험판 내 구매 버튼 배치:
- 예: 체험판 1장 최종 스테이지 클리어 후 “정식판 구매” 화면과 버튼을 노출:

- 버튼은
buyOut인터페이스를 호출해 Jogos 결제 창을 열고 정식판 구매를 유도합니다. - 플랫폼의「게임 정보 - 구매 페이지」에서 일시 구매 가격을 빠르게 업데이트하고 게임 초기화 시 실시간으로 가격을 가져올 수 있습니다。
- 구매 성공 시 Jogos 플랫폼이 자동으로 정식판으로 전환되며 개발자는 추가 작업이 필요 없습니다.
- 체험판과 정식판의 버전 번호를 동일하게 유지하면 세이브가 자동 이전됩니다.
- 결제 성공 후 주문 번호가 반환되므로 이를로 주문 정보를 조회할 수 있습니다.
javascript
// 성공 시 주문 번호 반환
let orderNo = await window.JOGOS_SDK.payment.buyOut();