市场选择
“市场选择(market selection)”功能用于在支持多个市场(例如 App Store + Hive Store)的环境中,让用户选择购买时使用的市场。
工作方式¶
本页说明 market selection 功能所需 API(setMarketSelection、getSelectedMarket 等)以及 API 调用顺序与使用流程。
在 IAP v4 初始化时调用 marketConnect 后,会返回设备可用市场列表。若可用市场超过一个,请调用 setMarketSelection 选择市场,再调用 getSelectedMarket,并使用返回的 market type 进行购买。
API 调用顺序¶
flowchart TD
A(["marketConnect"])
B(["getProductInfo"])
C{"用户是否<br/>更改支付方式<br/>(市场)?"}
D(["setMarketSelection"])
E(["getSelectedMarket"])
F(["purchase / restore"])
G{"是否使用其他市场<br/>继续购买?"}
H([完成])
A -- "应用启动时调用一次" --> B
B -- "每个市场首次调用一次" --> C
C -- "Yes" --> D
C -- "No" --> F
D --> E --> F
F --> G
G -- "Yes" --> D
G -- "No" --> H 调用 getProductInfo¶
在上述流程中,getProductInfo 每个市场仅首次调用一次。
- 调用成功后,该市场商品信息会缓存到 SDK 内。后续即使通过
setMarketSelection切换市场,也无需再次调用。
setMarketSelection¶
setMarketSelection API 通过传入 IAPV4Type,设置后续购买流程使用的市场。
setMarketSelection 调用时机
请在 marketConnect 之后、purchase 或 restore 之前调用。
* 用户更改支付方式(市场)时调用。 * 切换后,purchase 与 restore 将基于新市场执行。
IAPV4Type¶
IAPV4Type 是表示 IAP v4 支持市场类型的枚举。
| 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 |
getSelectedMarket¶
调用 getSelectedMarket 可获取当前选择的市场类型。
getSelectedMarket 调用时机
建议在发起购买请求前,用于确认当前已选择市场。