Skip to content

獲取內購品項對應當前地區的金額 ​

作用 ​

如需要對遊戲內商品顯示當前地區的金額和幣種,則調用此接口獲取當前配置的內購品項對應當前地區貨幣的金額和幣種。


函數 ​

objective-c
-(void)getLocalGoodsInfoV2:(void (^)(NSDictionary * _Nullable info, NSError * _Nullable error))callback;

回調 ​

參數名是否可為空(是/否)說明
info是info 為 dictionary,key為價格檔位,value為對應的價格資訊,示例如:@{ @"0.99" : { @"amount" : @"8" , @"currency" : @"HKD",@"currencySymbol": @"HK$", @"formattedPrice" : @"HK$8" } }
error是錯誤信息

key為價格檔位 ​

參數名是否可為空(是/否)說明
{priceKey}否對應內購品項的價格檔位,例如 0.99。value為包含價格資訊的 dictionary,如下表。

value為對應的價格資訊 ​

參數名是否可為空(是/否)說明
amount否商店報價的純數字金額,不包含貨幣符號、貨幣代碼、千分位或空格。小數點固定使用 .,並去除無意義的尾零。
currency否商店返回的 ISO 4217 貨幣代碼,例如 TWD、HKD、USD。此欄位用於識別幣別,不應根據 $ 等符號反推幣別。
currencySymbol否使用裝置 Locale 取得的一般貨幣符號,可能因語言、地區及系統版本不同而顯示為 $、NT$ 或 TWD,不保證與 formattedPrice 中的符號完全一致。
formattedPrice否可直接展示給使用者的完整本地化價格,包含商店決定的貨幣符號、金額、小數位、分組分隔符及符號位置。不要從此欄位反解析 amount 或 currencySymbol。

使用建議 ​

  • 價格 UI 直接展示時,優先使用 formattedPrice。
  • 需要自行排列金額和符號時,使用 amount、currencySymbol,但要自行處理符號位置和空格;不要假設符號一定位於金額前面。
  • 需要判斷或記錄幣別時,使用 currency,不要判斷 currencySymbol。
  • 不要使用外層價格檔位作為商品 ID。
  • 返回失敗時,建議使用美金作為備用方案。

示例代碼 ​

objective-c
    [[GamedreamerManager shareInstance] getLocalGoodsInfoV2:^(NSDictionary * _Nullable info, NSError * _Nullable error) {
        if (error) {
            NSLog(@"错误信息:%@",error);
        } else {
            NSLog(@"品项本地化价格信息:%@",info);
        }
    }];