帮助文档

SDK下载

关于SDK

本文档提供给游戏合作商对接的开发者使用,文档主要分几部分,一 、集成 SDK; 二、调用及其参数说明; 三、登录验签

版本更新说明

2025-4-14 v5.4.1

新增支付校验(支付接口重新对接,参见demo)

2024-11-21 v5.3.10

修复支付精度问题

优化界面显示

修复已知bug

2024-2-20 v5.3.5

修改限制登录到小号页面

修复折扣游戏支付金额小数点问题

修改福利币

2023-05-30 v5.3.4

修复支付金额是0.01时的bug

2023-05-30 v5.3.3

背景色颜色显示问题

2023-05-12 v5.3.2

支持省钱卡提示

2023-04-28 v5.3.1

更新联系微信客服,隐私弹框UI,新增浮标控制隐藏

2023-03-22 v5.3.0

修复输入框键盘遮挡问题

平台币充值说明,更新选择小号后的确认信息

2023-01-17 v5.2.9

修复用户名为空,手机号自动登录闪退问题

2023-01-17 v5.2.7

修复自动登录闪退问题

2023-01-17 v5.2.6

  • 修复微信、支付宝支付异常拉起的问题
  • 2023-01-12 v5.2.5

  • 修复账号自动登录问题
  • 2022-12-21 v5.2.3

  • 新增手机号第一次登录时保存注册账号截图功能
  • 修改了部分文字的显示不全问题
  • 2022-08-17 v5.2.2

  • 修改了手机登录取消绑定手机号的弹框
  • 修复自动登录的个人中心账号名称缓存的问题
  • 2022-08-03 v5.2.1,接入sdk时请先将旧版本的WanCmsSDK.framework,WCSDK.bundle替换

  • 修复手机登录已认证重复弹框的问题
  • 2022-07-01 v5.2.0,接入sdk时请先将旧版本的WanCmsSDK.framework,WCSDK.bundle替换,并参照下面文档对工程本地设置以及接口的调用作相对应的修改。

  • 修改了支付、浮窗、活动公告、个人中心的UI
  • 修复优化登录和支付流程
  • 新增编辑小号和注销账号入口
  • 修复游戏对接闪退的bug
  • 支付接口新增加一个字段cpOrderId(研发订单号)原来的attach字段不用在传研发订单号了
  • 登录回调的字段由“loginTime”改为"logintime"
  • 隐私政策弹框在请求登录接口时弹出,用户同意后才能登录,否则退出游戏。
  • 添加了Bugly-''2.5.9'',拖拽Bugly.framework文件到Xcode工程内(请勾选Copy items if needed选项)
  • WC.plist的key字段有调整,参考1.3截图
  • 1如何集成WanCmsSDK

    1.1 新建一个xcode工程(这里只是举个例子,对接的时候是游戏项目)

    1.2 直接将WanCmsSDK.framework,WCSDK.bundle拖进项目文件夹,勾选1,2,4,点击finish

    1.3 设置游戏和工程信息

    创建WC.plist文件,在plist文件设置游戏信息,区分不同游戏,将每个游戏对应的appid,agent,gameid填入下列对应参数的后边,agent代表渠道号

    设置info.plist,添加截图中的三个内容,分别用作:设置应用白名单用于跳转,允许加载浏览器以及获取保存截图到相册的权限(文字描述可自行修改)

    设置URL Types 如下 URL Schemes 必须为Aiqu5535SDK

    1.4 添加必须的依赖库

    libz.tbd 和AlipaySDK.framework,参考demo

    1.5 -ObjC

    在buldsetting里面搜索other link双击添加–ObjC回车

    1.6 iOS9,10系统的适配

    ios9,10默认打开bitcode,这里需要关闭,否则可能出现项目在模拟器上可以运行,但是真机上报错的问题。步骤:1先找到bitcode,2设置bitcode为NO

    1.7 AppDelegate参考demo配置

    2使用

    SDK接口均在UI线程中调用

    2.1 初始化(必须接入)

    在使用页面导入头文件 #import <WanCmsSDK/WCmsSDK.h>

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // sdk初始化
        [[WCmsSDK sharedInstance] initApi:application didFinishLaunchingWithOptions:launchOptions];
        return YES;
    }
                
    2.2 登录(必须接入)

    在使用页面导入头文件 #import <WanCmsSDK/WCmsSDK.h>,调用下面方法即可弹出登录页面,第一次需要登录,登录成功之后保存用户数据,下次登录会自动登录

    [[WCmsSDK sharedInstance] addLoginView:^(NSDictionary *resultDic) {
    NSLog(@"登录回调 = %@ 登录用户 = %@ 登录提示 = %@", resultDic,resultDic[@"username",resultDic[@"msg");
    if ([resultDic[@"code"] intValue] == 1) {
    NSLog(@"登录成功");
    }
    }];
                

    返回参数说明:

    参数名 类型 参数说明
    code NSInteger code = 1 : 登录成功
    code = -1 : 用户名不能为空
    code = -2 : 用户名长度不正确
    code = -3 : 没有注册设备来源
    code = -4 : 密钥不对
    code = -5 : 渠道ID不能为空
    code = -6 : 账号不存在或者密码不正确
    code = -7 : 游戏ID不能为空
    code = -8 : 注册失败
    code = 501: 网络连接失败
    msg NSString 失败信息(和code)
    username NSString 用户名
    logintime NSString 登录时间(时间戳)
    sign NSString 签名
    2.2 退出账号(必须接入)

    游戏退出或用户退出必须调用登出接口,然后调用登录接口展示登录页(此时不会自动登录),登录成功后,下次登录就时就会根据缓存的账号密码走自动登录流程。

    //退出登录
    [[WCmsSDK sharedInstance] doLoginOut];
                
    2.3 切换账号(必须接入)

    用户点击切换账号时,根据打印的回调进行退出游戏,回到登录账号界面。

    //切换账号回调
    [WCmsSDK sharedInstance].exitLogin = ^(NSDictionary *resultDic) {
        NSLog(@"%@回调",resultDic);
    };
                
    2.4 支付(如开计费必须接入)

    调用支付前,先调用上面的初始化,再调用登录,然后在要支付时调用下面方法即可弹出支付页面

    实例:

     [[WCmsSDK sharedInstance] addPayViewWithRoleId:@"test001"
                                                  money:@"66"
                                               serverId:@"888"
                                            productName:[NSString stringWithFormat:@"%@元宝", money]
                                            productDesc:@"元宝描述"
                                             cpOrderId:@"cpOrder889433455"
                                                 attach:[self getOrderNumber]
                                             completion:^(NSDictionary *resultDic) {
            NSLog(@"打印支付回调 = %@", resultDic);
        }];
                

    请求参数说明

    参数名 类型 参数说明
    roleId NSString 角色id
    serverId NSString 服务器id
    money NSString 支付金额(单位:元)
    productName NSString 产品名字
    productDesc NSString 产品描述
    cpOderId NSString 研发订单号
    attach NSString 扩展参数

    返回参数说明

    参数名 类型 参数说明
    message NSString 成功返回(xxx支付成功)
    失败返回(失败原因:xxxx)
    code NSString 支付状态编码(
    code = 1 : 支付成功
    code = -1 : 缺少参数,请重试
    code = -2 : 密钥不对
    code = -3 : 渠道ID不能为空
    code = -4 : 用户名不能为空
    code = -5 : 游戏ID不能为空
    code = -6 : 余额不足
    code = -7 : 内部服务器发生错误,请重试!
    code = -8 : 没有回调地址,请通知我方配置
    code = -9: 充值金额必须大于0
    )
    2.5 设置角色信息(必须接入)
    /**
     *  设置用户信息---支持改名(option)
     *
     *  @param roleId   角色id               必须
     *  @param roleName 游戏角色名(支持改名)   必须
     *  @param Level    角色等级              必须
     *  @param zoneId   角色所在区服唯一标示符  必须
     *  @param zoneName 角色所在区服名         必须
     *  @param block    提交结果block         (0:提交失败 1:成功 2:信息不全)
     */
    + (void)SetUserInfoDataWithRoleId:(NSString*)roleId
                             roleName:(NSString*)roleName 
                            roleLevel:(NSString*)Level 
                               zoneId:(NSString*)zoneId 
                             zoneName:(NSString*)zoneName 
                               attach:(NSString *)attach 
                                block:(void(^)(NSInteger code))block;
                

    实例

    [[WCmsSDK sharedInstance] setUserInfoDataWithRoleId:@"test001"
                                                roleName:@"测试员"
                                               roleLevel:@"1"
                                                  zoneId:@"888"
                                                zoneName:@"NO.1"
                                                  attach:@""
                                              completion:^(NSDictionary *resultDic) {
        if ([resultDic[@"code"] intValue] == 1) {
            [YGMessage showMessage:@"上传成功"];
        }
    }];
                

    请求参数说明

    参数名 类型 是否必须 参数说明
    roleId NSString 是 角色id
    zoneId NSString 是 服务器id
    roleName NSString 是 角色名
    attach NSString(Json字符串) 是 扩展参数(战力 fc 没有传nil)
    roleLevel NSString 是 玩家等级
    zoneName NSString 是 服务器名称
    block Block 否 完成回调

    返回参数说明

    参数名 类型 参数说明
    code NSString 失败状态编码(
    code = 0 : 访问服务器失败
    code = 1 : 成功
    code = 2 : 信息不全
    )

    3登录验签

    参数名 类型 参数说明 签名顺序
    username String wancms 用户帐号 1
    appkey String 应用 appkey 2
    logintime String 登陆时间,时间戳格式 3

    签名字符串示例: sign=MD5(“username=t315688&appkey=91bac46a9b70bd2db563cc483d443ba3&logintime =1395634100”)生成md5摘要后和登录接口返回的sign进行比对