主要为游戏发行海外地区(含港澳台 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"
}
]
}