跳轉至

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 等市場 App 登入異常
  • Hive Console 中 App ID 的市場設定異常

即使多個市場中僅部分市場連線失敗,callback 的 marketList 仍會包含 Hive Console 設定的所有市場。不論實際連線成功或失敗,都會依控制台設定原樣回傳。

例如:在 Hive Console 設定了 App Store 與 Hive Store 的 App,僅 Hive Store 連線失敗時:

  • ResultAPI:回傳錯誤碼
  • marketList[APPLE_APPSTORE, HIVESTORE](回傳所有已設定市場)

因此,即使 ResultAPI 失敗,也不代表 marketList 中所有市場皆連線成功。收到失敗碼時,應於用戶端實作 重試直到收到成功 callback,或以 彈窗提示使用者錯誤狀況(市場不可用)

相關代碼請參閱 IAP v4 Result API Guide

初始化注意事項

從 Hive SDK v4 Unity Windows 25.8.0 開始,Google Play 的 Windows 應用程式受到支持,並且可以使用 GOOGLE_PLAYSTORE 市場。在這種情況下,請在開發過程中注意以下事項:

  • 在呼叫初始化 (IAPV4.marketConnect) 之前,必須先在 PC Google Play Games 應用程式中使用 Google 帳戶登入。
  • 必須準備 manifest.xml 檔案。

自 Hive SDK v4 iOS 26.3.2 起可使用 HIVESTORE(PG)市場。