跳转至

市场选择

“市场选择(market selection)”功能用于在支持多个市场(例如 App Store + Hive Store)的环境中,让用户选择购买时使用的市场。

工作方式

本页说明 market selection 功能所需 API(setMarketSelectiongetSelectedMarket 等)以及 API 调用顺序与使用流程。

在 IAP v4 初始化时调用 marketConnect 后,会返回设备可用市场列表。若可用市场超过一个,请调用 setMarketSelection 选择市场,再调用 getSelectedMarket,并使用返回的 market type 进行购买。

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 之后、purchaserestore 之前调用。
* 用户更改支付方式(市场)时调用。 * 切换后,purchaserestore 将基于新市场执行。

IAPV4Type

IAPV4Type 是表示 IAP v4 支持市场类型的枚举。

Value Name Description
0 notSelected 未选择
1 appStore Apple App Store
2 google 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 调用时机

建议在发起购买请求前,用于确认当前已选择市场。