帮助文档

SDK下载

关于SDK

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

版本更新说明

2023-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进行比对