关于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替换,并参照下面文档对工程本地设置以及接口的调用作相对应的修改。
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进行比对