跳转至

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商店、Apple App Store等市场异常登录的情况下
  • 在Hive 控制台中根据AppID异常处理市场设置的情况下 这要求游戏客户端直接实现返回Result API失败的响应,例如重试直到获得成功回调向用户显示错误弹窗(例如,市场不可用)。有关Result API代码的详细信息,请参见Result API Code - IAP v4

初始化注意事项

从 Hive SDK v4 Unity Windows 23.0.0 开始,支持 Google Play 的 Windows 应用程序,并且可以使用 GOOGLE\_PLAYSTORE 市场。在这种情况下,请在开发过程中注意以下事项:

  • 初始化(IAPV4.marketConnect)必须在使用 AuthV4IdP 登录 后执行。
  • 当第一次调用 IAPV4.marketConnect 时,将出现一个 Google 账户登录屏幕,用于产品支付,允许应用用户选择一个 Google 账户进行市场支付。此登录过程不是应用开发者实现的功能,而是由 Hive SDK 自动执行。
  • 产品支付的 Google 账户登录与 Hive SDK 认证模块(AuthV4)提供的 Google IdP 登录不同。当用户从任何 IdP(AuthV4)注销时,包括 Google IdP,所使用的 Google 账户也将自动注销。