마켓 선택
'마켓 선택'은 마켓이 여러 개 존재하는 서비스 환경(예: App Store + Hive Store)에서 사용자가 구매에 사용할 마켓을 지정하는 기능입니다.
동작 방식¶
'마켓 선택' 기능 동작에 필요한 API(setMarketSelection, getSelectedMarket 등)와 API 호출 순서 및 호출 방식을 설명합니다.
우선 IAP v4 초기화 시에 marketConnect API를 호출하면 사용자 기기에서 이용 가능한 마켓 목록이 반환됩니다. 이용 가능한 마켓이 여러 개인 경우, setMarketSelection API를 호출하여 마켓을 선택합니다. 이후 getSelectedMarket API 호출하여 반환된 마켓 타입으로 구매를 진행합니다.
API 호출 순서¶
'마켓 선택' 기능을 구현 시 권장되는 API 호출 순서는 아래와 같습니다.
flowchart TD
A(["marketConnect"])
B(["getProductInfo"])
C{"사용자가<br/>결제 수단(마켓)<br/>변경?"}
D(["setMarketSelection"])
E(["getSelectedMarket"])
F(["purchase / restore"])
G{"다른 마켓으로<br/>추가 구매?"}
H([완료])
A -- "앱 실행 시 1회" --> B
B -- "마켓별 최초 1회" --> C
C -- "예" --> D
C -- "아니오" --> F
D --> E --> F
F --> G
G -- "예" --> D
G -- "아니오" --> H getProductInfo 호출¶
위 API 호출 순서 중 getProductInfo API는 마켓별로 최초 1회만 호출 하세요.
- 한 번 호출에 성공한 마켓의 상품 정보는 SDK 내부에 캐싱되므로, 이후
setMarketSelection으로 마켓을 변경하더라도 해당 마켓의getProductInfo를 다시 호출하지 않아도 됩니다.- 예를 들어, App Store와 Hive Store를 모두 지원하는 앱에서 각각
getProductInfo를 1회씩 호출하면, 이후 마켓 전환 시setMarketSelection→purchase순서로 호출합니다.
- 예를 들어, App Store와 Hive Store를 모두 지원하는 앱에서 각각
setMarketSelection¶
setMarketSelection API는 IAPV4Type 값을 전달받아 이후 구매 플로우에서 사용할 마켓을 설정합니다. setMarketSelection API는 구매 플로우에서 사용할 마켓을 선택하기 위해 호출하며, 호출 시 IAPV4Type 값을 전달합니다.
setMarketSelection API 호출 시점
marketConnect API 호출 이후 에 호출해야 하며, purchase API 또는 restore API 호출 전 에 호출해야 합니다.
- 사용자가 게임 내 상점에서 결제 수단(마켓)을 변경하는 시점에 호출합니다.
- 마켓 변경 후
purchase,restore호출 시 변경된 마켓 기준으로 동작합니다.
IAPV4Type¶
IAPV4Type은 IAP v4에서 지원하는 마켓 종류를 나타내는 열거형(enum)입니다.
| Value | Name | Description |
|---|---|---|
| 0 | notSelected | 선택되지 않음 |
| 1 | appStore | Apple App Store |
| 2 | Google Play Store | |
| 3 | lebi | Lebi Market |
| 4 | oneStore | ONE Store |
| 5 | amazon | Amazon Appstore |
| 6 | samsung | Samsung Galaxy Store |
| 7 | huawei | Huawei AppGallery |
| 8 | funtap | Funtap |
| 9 | oppoAppMarket | OPPO App Market |
| 10 | vivoAppStore | vivo App Store |
| 11 | tencentMyapp | Tencent Myapp |
| 12 | xiaomiAppStore | Xiaomi App Store |
| 13 | huaweiAppGalleryChina | Huawei AppGallery China |
| 14 | facebookCloudGame | Facebook Cloud Game |
| 15 | hiveStore | Hive Store |
| 16 | steam | Steam |
| 17 | nowgg | now.gg |
예제 코드¶
setMarketSelection API를 사용하는 예제 코드는 아래와 같습니다.
getSelectedMarket¶
getSelectedMarket API는 현재 선택된 마켓 타입을 받기 위해 호출하며, 호출 이후 반환되는 마켓 타입으로 구매를 진행할 수 있습니다.
getSelectedMarket 호출 시점
getSelectedMarket API는 구매 요청 전에 현재 선택된 마켓을 확인 하는 용도로 사용합니다. setMarketSelection API 호출 후 의도한 마켓으로 정상 변경되었는지 검증할 때 사용합니다.
예제 코드¶
getSelectedMarket API를 사용하는 예제 코드는 아래와 같습니다.