帮助文档

SDK下载

关于SDK

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

版本更新说明

2025-04-14 v1.3.0

新增支付验证

优化ui

2023-08-14 v1.0.3

新增折前券

2023-07-17 v1.0.2

增加抵扣券支付

2023-05-30 v1.0.0

第一版上线

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 支付(如开计费必须接入)

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

实例:

    // sign md5(appkey+gameid+orderid+roleid+username) 支付二次校验,防刷(若传“”或者不传,则不进行二次校验)
    NSString *sign = @"";
 [[WCmsSDK sharedInstance] addPayViewWithRoleId:@"test001"
                                              money:@"66"
                                           serverId:@"888"
                                        productName:[NSString stringWithFormat:@"%@元宝", money]
                                        productDesc:@"元宝描述"
                                         cpOrderId:@"cpOrder889433455"
                                             attach:[self getOrderNumber]
                                              sign:sign
                                         completion:^(NSDictionary *resultDic) {
        NSLog(@"打印支付回调 = %@", resultDic);
    }];
            

请求参数说明

参数名 类型 参数说明
roleId NSString 角色id
serverId NSString 服务器id
money NSString 支付金额(单位:元)
productName NSString 产品名字
productDesc NSString 产品描述
cpOderId NSString 研发订单号
attach NSString 扩展参数
sign 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进行比对