跳转至

IAP v4 初始化

要激活 IAP v4,请在购买之前请求 IAP 初始化。如果您请求初始化 IAP,游戏客户端将返回可用的商店信息。 商店信息定义为 IAPV4Type 枚举,字段中的详细信息如下;

市场信息

字段名称 描述
APPLE_APPSTORE 苹果应用商店
GOOGLE_PLAYSTORE 谷歌 Play 商店
HIVE_LEBI Lebi 商店
ONESTORE ONE 商店
AMAZON_APPSTORE 亚马逊应用商店(仅适用于 SDK v4)
SAMSUNG_GALAXYSTORE 三星 Galaxy 商店
HUAWEI_APPGALLERY 华为应用市场
HIVESTORE PG 支付(仅适用于 Windows,Unity)

游戏中的软货币市场应该对那些即使在游戏停止下载服务后仍然享受游戏的用户开放。因此,每个游戏工作室都需要分别编码硬货币市场和软货币市场。通过初始化 IAP v4 发送的结果值并不是用于访问游戏内市场,因此请不要以不同的方式使用结果值。在IAPV4类中实现marketConnect()以初始化 IAP v4。

初始化 IAPv4

以下是初始化 IAP v4 的示例代码。

API 参考: hive.IAPV4.marketConnect

using hive;    
    IAPV4.marketConnect((ResultAPI result, List marketIdList) => {    
         if (result.isSuccess()) {    
            // call successful    
        }    
});
#include "HiveIAPV4.h"

FHiveIAPV4::MarketConnect(FHiveIAPV4OnMarketConnectDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<EHiveIAPV4Type>& MarketIds) {
        if (Result.IsSuccess()) {
                // call successful 
        }
}));

API 参考: IAPV4::marketConnect

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    IAPV4::marketConnect([=](ResultAPI const & result, vector const & marketIdList) {    
         if (result.isSuccess()) {    
            // call successful    
         }    
});

API 参考: IAPV4.marketConnect

import com.hive.IAPV4    
    import com.hive.ResultAPI    
    IAPV4.marketConnect(object : IAPV4.IAPV4MarketInfoListener {    
         override fun onIAPV4MarketInfo(result: ResultAPI, iapV4TypeList: ArrayList<IAPV4.IAPV4Type>?) {    
             if (result.isSuccess) {    
                 // call successful    
             }    
         }    
})

API 参考: com.hive.IAPV4.marketConnect

import com.hive.IAPV4;    
    import com.hive.ResultAPI;    
    IAPV4.INSTANCE.marketConnect((result, iapV4TypeList) -> {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});

API 参考: IAPV4Interface .marketConnect

import HIVEService    
    IAPV4Interface.marketConnect() { result, marketIdList in    
        if result.isSuccess() {    
        // call successful    
        }    
}

API 参考: HIVEIAPV4::marketConnect

#import <HIVEService/HIVEService-Swift.h>    
    [HIVEIAPV4 marketConnect: ^(HIVEResultAPI *result, NSArray<NSNumber *> *marketIdList) {    
         if ([result isSuccess]) {    
            // call successful    
         }    
}];
Warning

如果 marketConnect() 调用失败,将无法正常进行商品列表查询或购买。常见原因如下:

  • 设备账号登录异常
  • Google Play Store、Apple App Store 等市场应用登录异常
  • Hive Console 中 App ID 的市场配置异常

即使多市场中仅部分市场连接失败,回调中的 marketList 仍会包含 Hive Console 中配置的全部市场。无论实际连接成功或失败,都会按控制台配置原样返回。

例如:在 Hive Console 中配置了 App Store 和 Hive Store 的应用,仅 Hive Store 连接失败时:

  • ResultAPI:返回错误码
  • marketList[APPLE_APPSTORE, HIVESTORE](返回全部已配置市场)

因此,即使 ResultAPI 失败,也不表示 marketList 中所有市场都连接成功。收到失败码时,应在客户端实现 重试直到收到成功回调,或通过 弹窗向用户提示错误(市场不可用)

相关返回码请参阅 IAP v4 Result API Guide

Notes for initialization

从 Hive SDK v4 Unity Windows 25.8.0 开始,支持 Google Play 的 Windows 应用,可使用 GOOGLE_PLAYSTORE 市场。开发时请注意:

从 Hive SDK v4 iOS 26.3.2 版本开始,可使用 HIVESTORE(PG)市场。