로컬 통화 정보 V2
용도
선택사항입니다. gamedreamerLocalInfoV2는 현재 Google Play 지역에서 게임에 구성된 가격 항목의 현지화된 가격을 조회합니다.
이 API는 구성된 가격 항목과 상품 매핑을 읽은 뒤 Google Play Billing에서 상품 가격을 조회하고, 가격 항목별로 결과를 반환합니다.
함수
java
import com.gd.sdk.GDSDK;
import com.gd.sdk.listener.GamedreamerLocalInfoListenerV2;
public static void gamedreamerLocalInfoV2(
Context context,
GamedreamerLocalInfoListenerV2 gamedreamerLocalInfoListener)매개변수
| 매개변수 | 설명 |
|---|---|
context | Android Context 객체 |
gamedreamerLocalInfoListener | com.gd.sdk.listener에 있는 GamedreamerLocalInfoListenerV2 콜백 |
콜백
onLocalInfo
java
void onLocalInfo(HashMap<String, Object> map)조회 성공 시 호출됩니다. 외부 Map의 key는 0.99와 같은 구성된 비즈니스 가격 항목이며, value는 해당 가격 정보 Map입니다.
onFail
java
void onFail(String message)조회 실패 시 호출됩니다. message에는 실패 정보가 포함됩니다.
반환 구조
json
{
"0.99": {
"amount": "33",
"currency": "TWD",
"currencySymbol": "$",
"formattedPrice": "$33.00"
}
}외부 Map
외부 key는 0.99, 2.0과 같은 구성된 가격 항목입니다. 게임 내 충전 가격 항목과 결과를 연결할 때 사용하며, 현지 통화 금액이나 상품 ID가 아닙니다.
내부 필드
| 필드 | 설명 |
|---|---|
amount | 통화 기호, 통화 코드, 천 단위 구분 기호 및 공백을 포함하지 않는 상점 금액입니다. 소수점은 항상 .을 사용하며 의미 없는 끝의 0은 제거됩니다. |
currency | 상점이 반환한 ISO 4217 통화 코드입니다. 예: TWD, HKD, USD. 통화를 식별하거나 기록할 때 사용합니다. |
currencySymbol | 기기의 표시 Locale에서 확인한 일반 통화 기호입니다. 언어, 지역 및 시스템 버전에 따라 $, NT$ 또는 TWD가 될 수 있으며 formattedPrice의 기호와 다를 수 있습니다. |
formattedPrice | 상점이 결정한 통화 기호, 금액, 소수 자릿수, 그룹 구분 기호 및 기호 위치를 포함한 완전한 현지화 가격입니다. 그대로 표시할 수 있습니다. |
amount, currency, formattedPrice는 동일한 상점 상품 가격에서 가져옵니다. currencySymbol은 기기 표시 Locale의 일반 기호만 제공합니다. formattedPrice에서 금액이나 통화를 역분석하거나 기호와 금액을 직접 연결하지 마세요.
예시 코드
java
GDSDK.gamedreamerLocalInfoV2(this, new GamedreamerLocalInfoListenerV2() {
@Override
public void onLocalInfo(HashMap<String, Object> map) {
Object itemObject = map.get("0.99");
if (!(itemObject instanceof Map)) {
return;
}
Map<?, ?> item = (Map<?, ?>) itemObject;
String amount = String.valueOf(item.get("amount"));
String currency = String.valueOf(item.get("currency"));
String currencySymbol = String.valueOf(item.get("currencySymbol"));
String formattedPrice = String.valueOf(item.get("formattedPrice"));
// 표시할 때는 formattedPrice를 직접 사용합니다(예: "$33.00").
priceTextView.setText(formattedPrice);
}
@Override
public void onFail(String message) {
Log.e("Game", "local price query failed: " + message);
}
});사용 권장 사항
- 가격 UI에는
formattedPrice를 우선 사용합니다. - 금액과 기호를 직접 배치해야 하는 경우
amount와currencySymbol을 사용하고 기호 위치와 공백을 직접 처리합니다. - 통화를 식별하거나 기록할 때는
currency를 사용하며currencySymbol로 판단하지 않습니다. - 외부 가격 항목을 상품 ID로 사용하거나 V2 결과에서
productId를 찾지 않습니다. onFail호출 시 불완전한 가격 데이터를 사용하지 말고, 성공한 조회 결과를 기다립니다.- 조회에 실패하면 미국 달러(USD)를 대체 통화로 사용하는 것을 권장합니다.