supersdk

文档中心

文档中心

下载文档

海外拓展接口


主要为游戏发行海外地区(含港澳台 Google 包)提供支付辅助功能。

注意一:以下接口数据主要是用来做游戏内商品金额的显示,调用 SDK 支付时还是以游戏原来配置的商品表金额为准。

注意二:货币本地化接口一、货币本地化接口二只需要接入其中一个即可,两个接口的区别在于传的商品 id 不一样,如果游戏内使用的商品 id 和谷歌后台配置的商品 id 如果一样,建议使用接口一。

一、货币本地化接口一

接口描述:传入谷歌后台配置的商品 id,返回当前谷歌商店登录账户所在地对应商品 id 的货币单位和金额(金额和货币单位是分开的两个字段)。

接口调用:

String productids = "diamond100|diamond500|diamond1000"; // 普通商品 id 使用|分割,谷歌商品 id
String productsSubs = "diamondSubs100|diamondSubs500"; // 订阅商品 id 使用|分割,谷歌商品 id

Map<String, String> params = new HashMap<String, String>();
params.put("products", productids); // 传入普通商品 id 信息,商品 id 使用竖线 "|" 分割
params.put("productsSubs", productsSubs); // 传入订阅商品 id 信息,商品 id 使用竖线 "|" 分割(没有订阅商品无需传入)
SuperSDK.invoke("platform", "getProductsInfoJson", params);

接口回调:

// OnSuperSDKListener 的 onSuperSDK 方法回调结果,解析后判断
if(BCoreConst.platform.MODULE_NAME.equals(moduleName) && "getProductsInfoJson".equals(funcName)) {
    getProductsInfoJson(result);
}

// 处理方法回调结果
public void getProductsInfoJson(String result) {
    // 调用 other 接口结束 functionName:getProductsInfo ,code: " + code +" , msg: " + msg;
    JSONObject json = JsonUtils.parseObject(result);
    int code = json.getIntValue("code");
    if(code != 1) {
        String msg = json.getString("msg");
        Log.e("result", "调用失败了: "+msg);
        return;
    }
    // 成功,获取 data 里面的值,并处理
    JSONArray infos= json.getJSONArray("data");
    for(int i = 0 ; i<infos.size() ; i++){
        // 获取每一个 JsonObject 对象
        JSONObject myjObject = infos.getJSONObject(i);
        Log.e("result", "productidjson = " +myjObject.toString());
        String money = myjObject.getString("price");// 金额
        String currency = myjObject.getString("price_currency_code");// 货币单位
        String title = myjObject.getString("title");// 谷歌上配置的商品的标题。
        String description = myjObject.getString("name");// 谷歌商品的名称。
    }
}

日志打印:

moduleName:platform
funcName:getProductsInfoJson
result:
{
    code : 1, // 1/0/xxx,1 表示获取成功,0 表示失败,xxx 表示其他错误, code 没有可忽略
    msg  : xxx,
    data : [
                   {
                       "productId":"diamond100",
                       "type":"inapp",
                       "price":"HK$8.00",
                       "price_amount_micros":8000000,
                       "price_currency_code":"HKD",
                       "title":"100 Diamonds (Legacy of Discord-FuriousWings)",
                       "name":"Recharge 0.99$ for 100 Diamonds"
                   },
                   {
                       "productId":"diamond1000",
                       "type":"inapp",
                       "price":"HK$78.00",
                       "price_amount_micros":78000000,
                       "price_currency_code":"HKD",
                       "title":"1000 Diamonds (Legacy of Discord-FuriousWings)",
                       "name":"Recharge 9.99$ for 1000 Diamonds"
                   },
                   {
                       "productId":"diamond500",
                       "type":"inapp",
                       "price":"HK$38.00",
                       "price_amount_micros":38000000,
                       "price_currency_code":"HKD",
                       "title":"500 Diamonds (Legacy of Discord-FuriousWings)",
                       "name":"Recharge 4.99$ for 500 Diamonds"
                   },
                   {
                       "productId":"diamondSubs100",
                       "type":"subs",
                       "price":"HK$78.00",
                       "price_amount_micros":78000000,
                       "price_currency_code":"HKD",
                       "title":"100 Diamonds (Legacy of Discord-FuriousWings)",
                       "name":"Recharge 9.99$ for 500 Diamonds"
                   },
                   {
                       "productId":"diamondSubs500",
                       "type":"subs",
                       "price":"HK$178.00",
                       "price_amount_micros":178000000,
                       "price_currency_code":"HKD",
                       "title":"500 Diamonds (Legacy of Discord-FuriousWings)",
                       "name":"Recharge 19.99$ for 500 Diamonds"
                   }
               ]
}

二、货币本地化接口二

接口描述:传入游戏内使用的商品 id,返回当前谷歌商店登录账户所在地对应商品 id 的货币单位和金额(金额和货币单位是分开的两个字段)。

接口调用:

String productids = "10021|340001|10022"; // 普通商品 id 使用|分割,游戏内使用的商品 id
String productsSubs = "95270|95271"; // 订阅商品 id 使用|分割,游戏内使用的商品 id

Map<String, String> params = new HashMap<String, String>();
params.put("products", productids);// 传入普通商品 id 信息,商品 id 使用竖线 "|" 分割
params.put("productsSubs", productsSubs);// 传入订阅商品 id 信息,商品 id 使用竖线 "|" 分割(没有订阅商品无需传入)
SuperSDK.invoke("platform", "getProductsInfos", params);

接口回调:

// OnSuperSDKListener 的 onSuperSDK 方法回调结果,解析后判断
if(BCoreConst.platform.MODULE_NAME.equals(moduleName) && "getProductsInfos".equals(funcName)) {
    getProductsInfos(result);
}

// 处理方法回调结果
public void getProductsInfos(String result) {
    // 调用 other 接口结束 functionName:getProductsInfos ,code: "+ code +" , msg:"+msg;
    JSONObject json = JsonUtils.parseObject(result);
    int code = json.getIntValue("code");
    if(code != 1) {
        String msg = json.getString("msg");
        Log.e("result", "调用失败了: "+msg);
        return;
    }
    // 成功,获取 data 里面的值,并处理
    JSONArray infos= json.getJSONArray("data");
    for(int i = 0 ; i<infos.size() ; i++){
        // 获取每一个 JsonObject 对象
        JSONObject myjObject = infos.getJSONObject(i);
        Log.e("result", "productidjson = " +myjObject.toString());
        String money = myjObject.getString("price");// 金额
        String currency = myjObject.getString("price_currency_code");// 货币单位
        String title = myjObject.getString("title");// 谷歌上配置的商品的标题。
        String description = myjObject.getString("name");// 谷歌商品的名称。
    }
}

日志打印:

moduleName:platform
funcName:getProductsInfos
result:
{
    code : 1, // 1/0/xxx,// 1 表示获取成功,0 表示失败,xxx 表示其他错误, code 没有可忽略
    msg  : xxx,
    data : [
            {
                "productId":"10021",
                "type":"inapp",
                "price":"US$9.99",
                "price_amount_micros":9990000,
                "price_currency_code":"USD",
                "title":"Gem monthly card_10021 (Infinity Kingdom)",
                "name":"Gem monthly card_10021"
            },
            {
                "productId":"340001",
                "type":"inapp",
                "price":"US$4.99",
                "price_amount_micros":4990000,
                "price_currency_code":"USD",
                "title":"VIP10 treasure chest_340001 (Infinity Kingdom)",
                "name":"VIP10 treasure chest_340001"
            },
            {
                "productId":"10022",
                "type":"inapp",
                "price":"US$4.99",
                "price_amount_micros":4990000,
                "price_currency_code":"USD",
                "title":"Speed week card_10022 (Infinity Kingdom)",
                "name":"Speed week card_10022"
            },
            {
                "productId":"95270",
                "type":"subs",
                "price":"US$4.99",
                "price_amount_micros":4990000,
                "price_currency_code":"USD",
                "title":"订阅测试 1 (Infinity Kingdom)",
                "name":"订阅测试 1"
            },
            {
                "productId":"95271",
                "type":"subs",
                "price":"US$4.99",
                "price_amount_micros":4990000,
                "price_currency_code":"USD",
                "title":"订阅测试 2 (Infinity Kingdom)",
                "name":"订阅测试 2"
            }
        ]
}