supersdk

文档中心

文档中心

下载文档

海外拓展接口


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

注意一:以下接口数据主要是用来做游戏内商品金额的显示,调用 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
}