主要为游戏发行海外地区(港澳台除外)提供支付辅助功能。
注意一:以下接口数据主要是用来做游戏内商品金额的显示,调用 SDK 支付时还是以游戏原来配置的商品表金额为准。
注意二:货币本地化接口一、货币本地化接口二只需要接入其中一个即可,两个接口的区别在于传的商品 id 不一样,如果游戏内使用的商品 id 和苹果后台配置的商品 id 如果一样,建议使用接口一。
接口描述:传入苹果后台配置的商品 id,返回当前苹果商店登录账户所在地对应商品 id 的货币单位和金额(金额和货币单位是分开的两个字段)。
接口调用:
NSDictionary *parameters = @{
@"products" : @"com.test.p1|com.test.p2", // 传入普通商品 id 信息,商品 id 使用竖线 "|" 分割
@"productsSubs" : @"com.test.dingyue1|com.test.dingyue2" // 传入订阅商品 id 信息,商品 id 使用竖线 "|" 分割(没有订阅商品无需传入)
};
[SuperSDK invoke:@"platform" funcName:@"getProductsInfoJson" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
// 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
// 1.回调参数解析
NSDictionary *retParam = nil;
if (result) {
NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue]; // 状态码
NSString *msg = [retParam objectForKey:@"msg"]; // 说明
// 2.回调参数判断
if ([moduleName isEqualToString:BCORE_MODULE_PLATFORM]) {// platform模块回调
if ([funcName isEqualToString:@"getProductsInfoJson"]) {// 获取商品信息
if (code==BCORE_SUCCESS) {
NSArray *productsInfo = [retParam objectForKey:@"data"];
NSLog(@"获取商品信息成功,商品信息为:%@", productsInfo);
}
else {
NSLog(@"获取商品信息失败,原因为:%@", desc);
}
}
}
}
日志打印:
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
}
接口描述:传入游戏内使用的商品 id,返回当前苹果商店登录账户所在地对应商品 id 的货币单位和金额(金额和货币单位是分开的两个字段)。
接口调用:
NSDictionary *parameters = @{
@"products" : @"1000|1001",
@"productsSubs" : @"1004|1005"
};
[SuperSDK invoke:@"platform" funcName:@"getProductsInfos" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
// 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
// 1.回调参数解析
NSDictionary *retParam = nil;
if (result) {
NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue]; // 状态码
NSString *msg = [retParam objectForKey:@"msg"]; // 说明
// 2.回调参数判断
if ([moduleName isEqualToString:BCORE_MODULE_PLATFORM]) {// platform模块回调
if ([funcName isEqualToString:@"getProductsInfos"]) {// 获取商品信息
if (code==BCORE_SUCCESS) {
NSArray *productsInfo = [retParam objectForKey:@"data"];
NSLog(@"获取商品信息成功,商品信息为:%@", productsInfo);
}
else {
NSLog(@"获取商品信息失败,原因为:%@", desc);
}
}
}
}
日志打印:
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
}