Skip to content

로컬 통화 정보 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)

매개변수 ​

매개변수설명
contextAndroid Context 객체
gamedreamerLocalInfoListenercom.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)를 대체 통화로 사용하는 것을 권장합니다.