결제
Classic/VPC 환경에서 이용 가능합니다. GAMEPOT SDK에서 제공하는 인앱 결제 기능을 사용하여 게임 내 아이템을 판매할 수 있습니다. 결제 전에 스토어 별 환경 설정에 해당 스토어에 맞도록 설정해야 합니다. 또한, 대시보드 > 결제 > 인앱에 아이템이 추가되지 않았을 경우 'ProductID not found' 라는 오류가 발생됩니다.
Android
(AOS) 인앱 정보 가져오기
결제하실 때에 화면에 결제 정보와 현지 통화 정보를 표시해야 합니다. 아래 함수를 통해서 현재 결제 통화나 이름 등을 가져올 수 있습니다. 만일 정상적으로 가져오지 못하는 경우 콘솔 세팅을 확인해 주시기 바랍니다.
import com.nbase.sdk.Store
NBase.getProductItems() {products, e ->
if (e != null) {
Log.e("NBase", e.message)
} else {
// 인앱 아이템 정보
Log.e("NBase", products)
}
}
Callback
id
String
제품 ID
productName
String
제품 이름
title
String
제품 타이틀
price
Float
제품 가격
localizedPrice
Float
현지화된 가격
productId
String
제품 고유 ID
productType
String
제품 타입
productDescription
String
제품 설명
currency
String
통화 단위
(AOS) 결제 요청
가져온 인앱 정보에 productId 로 결제를 요청하실 수 있습니다.
import com.nbase.sdk.Store
NBase.purchase(activity, Store.GOOGLE, productId, metadata, options) { purchase, e ->
if (e != null) {
Log.e("NBase", e.message)
} else {
Log.e("NBase", purchase)
}
}
Parameter
activity
Activity
현재 액티비티
O
storeId
Store
스토어 ID (아래 표 참고)
O
productId
String
상품ID (대시보드 → 결제 → 인앱 아이템)
O
metadata
String
메타데이터
X
options
String
결제 옵션 기능
X
Store.GOOGLE
구글 스토어
Store.ONE
원 스토어
Store.GALAXY
갤럭시 스토어
Store.AMAZON
아마존 스토어
Store.HUAWEI
화웨이 스토어
Callback
id
String
ID
orderId
String
주문 ID
storeId
String
스토어 ID
productId
String
상품 ID
billingKey
String
결제 키
signature
String
서명
originalJson
String
원본 JSON
developerPayload
String
개발자 페이로드
packageName
String
패키지명
isAcknowledged
bool
확인 여부
purchaseState
String
구매 상태
purchaseTime
String
구매 시간
quantity
String
수량
recurringState
String
반복 결제 상태
currency
String
통화
country
String
국가
paymentId
String
결제 ID
price
Float
가격
iapVersion
String
인앱결제 버전
playerId
String
플레이어 ID
serverId
String
서버 ID
level
Int
레벨
userdata
String
사용자 데이터
metadata
String
메타데이터
options
String
옵션
authCode
String
인증 코드
iOS
(iOS) 인앱 정보 가져오기
결제하실 때에 화면에 결제 정보와 현지 통화 정보를 표시해야 합니다. 아래 함수를 통해서 현재 결제 통화나 이름 등을 가져올 수 있습니다. 만일 정상적으로 가져오지 못하는 경우 콘솔 세팅을 확인해 주시기 바랍니다.
let products = NBase.getProductItems()
Callback
id
String
제품 ID
productId
String
제품 고유 ID
productName
String
제품 이름
productType
String
제품 타입
currency
String
통화
price
Float64
제품 가격
localizedPrice
String
현지화된 가격
productDescription
String
제품 설명
(iOS) 결제 요청
가져온 인앱 정보에 productId 로 결제를 요청하실 수 있습니다.
NBase.purchase(productId: productId, metadata: metadata, options: options) { result in
switch result {
case .success(let data):
NBase.showToast(message: data?.encodeToJson() ?? "")
case .failure(let error):
NBase.showToast(message: error.errorDescription ?? "")
}
}
Parameter
productId
String
상품 ID (대시보드 > 결제 > 인앱 아이템)
O
metadata
String
메타데이터
X
options
String
결제 옵션 기능
X
Callback
orderId
String
주문 ID
receipt
String
영수증
signature
String
서명
productId
String
상품 ID
storeId
String
스토어 ID
country
String
국가
quantity
Int
수량
paymentId
String
결제 ID
currency
String
통화
serverId
String
서버 ID
playerId
String
플레이어 ID
userdata
String
사용자 데이터
metadata
String
메타데이터
options
String
결제 옵션
authCode
String
인증 코드
level
Int
레벨
price
Float64
가격
Unity
(Unity) 인앱 정보 가져오기
결제하실 때에 화면에 결제 정보와 현지 통화 정보를 표시해야 합니다. 아래 함수를 통해서 현재 결제 통화나 이름 등을 가져올 수 있습니다. 만일 정상적으로 가져오지 못하는 경우 콘솔 세팅을 확인해 주시기 바랍니다.
NBaseSDK.NBase.getProductItems(Store.google.ToString(), (products, error) =>
{
if (products != null && products.Count > 0)
{
// 제품 목록을 순회합니다.
foreach (var product in products)
{
// 각 제품의 정보를 토스트 메시지로 보여줍니다.
// 예시에서는 product.ToString()을 호출하고 있지만,
// 실제로는 product의 구체적인 속성(예: 이름, 가격 등)을 표시할 수 있습니다.
NBaseSDK.NBase.showToast(product.ToString());
}
}
else
{
// 제품 목록이 비어있는 경우, 사용자에게 알립니다.
NBaseSDK.NBase.showToast("제품 목록이 비어있습니다.");
}
});
Callback
Products[].id
string
제품 ID
Products[].title
string
제품 타이틀
Products[].productId
string
제품 고유 ID
Products[].productType
string
제품 타입
Products[].productName
string
제품 이름
Products[].productDescription
string
제품 설명
Products[].currency
string
통화 단위
Products[].price
float
제품 가격
(Unity) 결제 요청
가져온 인앱 정보에 productId 로 결제를 요청할 수 있습니다.
NBaseSDK.NBase.purchase(Store.google.ToString(), productId, metadata, options, (purchase, error) =>
{
if (error != null)
{
Debug.Log(error.Message.ToString());
return;
}
// 결제 성공
});
Parameter
storeId
string
스토어 ID (아래 표 참고)
O
productId
string
상품ID (대시보드 → 결제 → 인앱 아이템)
O
metadata
string
Metadata
X
options
string
결제 옵션 기능
X
Store.google.ToString()
구글 스토어
Store.one.ToString()
원 스토어
Store.galaxy.ToString()
갤럭시 스토어
Store.amazon.ToString()
아마존 스토어
Store.huawei.ToString()
화웨이 스토어
Callback
storeId
string
상점의 고유 ID
paymentId
string
결제 ID
iapVersion
string
인앱 결제 버전
productId
string
제품 ID
billingKey
string
청구 키
signature
string
서명
originalJson
string
원본 JSON
orderId
string
주문 ID
developerPayload
string
개발자 페이로드
packageName
string
패키지 이름
isAcknowledged
bool
확인 여부
purchaseState
int
구매 상태
purchaseTime
long
구매 시간
price
float
가격
quantity
int
수량
currency
string
통화 단위
문제 해결
Q. ProductID not found 오류가 발생합니다. A. 대시보드 > 결제 > 인앱에 해당 상품 ID가 등록되어 있는지 확인해 주십시오.
Q. 결제가 진행되지 않습니다. A. 스토어별 환경 설정을 참고하여 해당 스토어에 맞는 설정이 완료되었는지 확인해 주십시오.
Q. (Android) java.lang.NoClassDefFoundError: Failed resolution of: Lcom/android/billingclient/api/BillingClient; A. 아래 코드를 추가해 주십시오.
<androidPackage spec="com.android.billingclient:billing:6.1.0" />
Q. (iOS) 인앱 정보를 가져올 수 없습니다. A. Apple Connect에 등록된 인앱 상품 정보와 앱 환경(Production/Sandbox)이 일치하는지 확인해 주십시오.
Last updated