主要为游戏发行海外地区(港澳台除外)提供支付辅助功能。
注意一:以下接口数据主要是用来做游戏内商品金额的显示,调用 SDK 支付时还是以游戏原来配置的商品表金额为准。
注意二:货币本地化接口一、货币本地化接口二只需要接入其中一个即可,两个接口的区别在于传的商品 id 不一样,如果游戏内使用的商品 id 和苹果/谷歌后台配置的商品 id 如果一样,建议使用接口一。
接口描述:传入苹果/谷歌后台配置的商品 id,返回当前苹果/谷歌商店登录账户所在地对应商品 id 的货币单位和金额(金额和货币单位是分开的两个字段)。
接口调用:
string productids = "diamond100|diamond500|diamond1000"; // 普通商品 id 使用|分割,谷歌商品 id
string productsSubs = "diamondSubs100|diamondSubs500"; // 订阅商品 id 使用|分割,谷歌商品 id
Dictionary<string, object> params = new Dictionary<string, object>();
params.Add("products", productids); // 传入普通商品 id 信息,商品 id 使用竖线 "|" 分割
params.Add("productsSubs", productsSubs); // 传入订阅商品 id 信息,商品 id 使用竖线 "|" 分割(没有订阅商品无需传入)
SuperSDK.getInstance().Invoke("platform", "getProductsInfoJson", params);
接口回调:
public void OnCallBack(string moduleName, string funcName, string result)
{
Debug.Log("moduleName:" + moduleName);
Debug.Log("funcName:" + funcName);
Debug.Log("result:" + result);
JsonData resultData = JsonMapper.ToObject(result);
if (moduleName.Equals("platform"))
{
if (funcName.Equals("getProductsInfoJson"))
{
JsonData resultData = JsonMapper.ToObject(result);
int code = (int)resultData["code"];
// string msg = JsonMapper.ToJson(resultData["data"]);
if (code == SuperSDKConstants.SUCCESS)
{
// 操作成功
}
else
{
// 操作失败
}
}
}
}
日志打印:
注意:由于平台原因,iOS 和 Android 返回值存在差异性,请分别解析处理。
iOS:
moduleName : platform,
funcName : getProductsInfoJson,
parameters : {
"desc" : "商品信息获取成功",
"data" : [
{
"price_currency_code" : "CNY",
"productId" : "com.test.p1",
"price" : "¥6",
"title" : "仲裁币",
"country_code" : "CN",
"description" : "仲裁币,用于购买游戏道具。",
"language_code" : "zh"
},
{
"price_currency_code" : "CNY",
"productId" : "com.test.p2",
"price" : "¥12",
"title" : "仲裁币",
"country_code" : "CN",
"description" : "游戏内,用于购买游戏虚拟道具.",
"language_code" : "zh"
}
],
"code" : 1
}
Android:
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
Dictionary<string, object> params = new Dictionary<string, object>();
params.Add("products", productids);// 传入普通商品 id 信息,商品 id 使用竖线 "|" 分割
params.Add("productsSubs", productsSubs);// 传入订阅商品 id 信息,商品 id 使用竖线 "|" 分割(没有订阅商品无需传入)
SuperSDK.getInstance().Invoke("platform", "getProductsInfos", params);
接口回调:
public void OnCallBack(string moduleName, string funcName, string result)
{
Debug.Log("moduleName:" + moduleName);
Debug.Log("funcName:" + funcName);
Debug.Log("result:" + result);
JsonData resultData = JsonMapper.ToObject(result);
if (moduleName.Equals("platform"))
{
if (funcName.Equals("getProductsInfos"))
{
JsonData resultData = JsonMapper.ToObject(result);
int code = (int)resultData["code"];
// string msg = JsonMapper.ToJson(resultData["data"]);
if (code == SuperSDKConstants.SUCCESS)
{
// 操作成功
}
else
{
// 操作失败
}
}
}
}
日志打印:
注意:由于平台原因,iOS 和 Android 返回值存在差异性,请分别解析处理。
iOS:
moduleName : platform,
funcName : getProductsInfos,
parameters : {
"desc" : "商品信息获取成功",
"data" : [
{
"price_currency_code" : "CNY",
"productId" : "1000",
"price" : "¥6",
"title" : "仲裁币",
"country_code" : "CN",
"description" : "仲裁币,用于购买游戏道具。",
"language_code" : "zh"
},
{
"price_currency_code" : "CNY",
"productId" : "1001",
"price" : "¥12",
"title" : "仲裁币",
"country_code" : "CN",
"description" : "游戏内,用于购买游戏虚拟道具.",
"language_code" : "zh"
}
],
"code" : 1
}
Android:
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"
}
]
}