跳轉至

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)
ANIMATE_GO animate Games Online(僅限 Android)
DMM DMM 點數商店。在 Windows 上透過 DMM GAME PLAYER 執行時使用。

遊戲中的軟幣市場應該對那些即使在遊戲停止下載服務後仍然享受遊戲玩法的用戶開放。因此,每個遊戲工作室都需要分別編碼硬幣市場和軟幣市場。初始化 IAP v4 發送的結果值不是用於訪問遊戲內市場,因此請不要以不同的方式使用該結果值。在IAPV4類中實現 marketConnect() 以初始化 IAP v4。

DMM 結帳使用前注意事項

DMM 結帳僅在 Windows 上透過 DMM GAME PLAYER 執行時使用。本文件中的 DMM 相關內容皆以 Windows 環境為準。請先參閱 DMM 登入 以瞭解 DMM 登入與管理權杖的限制。

DMM 結帳是使用者以已儲值的 DMM 點數購買商品的結帳方式。結帳請求與復原流程遵循 IAP v4 的一般購買流程,但同時會運作 DMM 專用的分支,例如確認 DMM 點數餘額、引導儲值點數等。因此在 Windows DMM 環境下,仍會維持既有的 IAP v4 流程,同時一併處理以 DMM 點數為基礎的結帳條件。

事前準備:控制台註冊

若要使用 DMM 驗證,請先參閱 使用 DMM 登入

DMM 結帳特色

結帳不需要另外的結帳視窗 UI,呼叫 purchase() 後即可立即確定。但依伺服器處理狀況,購買後可能不會立即回傳收據,此時請使用 restore() 重新取得收據。

呼叫 DMM 結帳 API 時,需要有效的管理權杖 onetime_token。有關權杖有效期限、自動更新、過期時的處理方式,請參閱 DMM 登入

初始化 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)市場。

Google Play for native PC 初始化失敗因應(Hive SDK v4 Unity Windows 26.4.2 以上)

當 Google Play Games PC SDK 因初始化失敗而需要終止時,系統不會強制終止,而是透過 IAPV4.marketConnect 回呼傳遞結果。這是為了讓應用程式能夠自行控制終止的時機與方式。

當 Google Play Games PC SDK 初始化失敗(kActionRequiredShutdownClientProcess)時,IAPV4.marketConnect 回呼會傳遞 IAPV4PlayStoreActionRequiredShutdown(-6100706) 結果代碼。

收到此結果代碼時,建議盡快終止應用程式處理程序。由於 ResultAPI.needExit() 會傳回 true,因此可透過 needExit() 判斷是否需要終止。終止處理程序後,Google Play Games PC SDK 端會嘗試進行後續動作以協助使用者。