결제
결제 모듈은 게임 내 아이템 구매 및 완전 구매(买断) 결제 기능을 제공합니다.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
);
javascript
// 성공 시 주문 번호 반환
let orderNo = await window.JOGOS_SDK.payment.buyOut();