跳轉至

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 帳戶。