LoginRet
存储用户登录后得到的信息
typedef struct loginRet_ {
int flag; //返回标记,标识成功和失败类型
std::string desc; //返回描述
int platform; //当前登录的平台
std::string open_id;
std::vector<TokenRet> token;
std::string user_id; //用户ID,先保留,等待和微信协商
std::string pf;
std::string pf_key;
std::string prajna_ext; //3.3.7新增字段
#ifdef __APPLE__
loginRet_ ():flag(-1),platform(0){};
#endif
}LoginRet;
eMSDK_SCREENDIR
typedef enum _eMSDK_SCREENDIR {
eMSDK_SCREENDIR_SENSOR=0, //横竖屏
eMSDK_SCREENDIR_PORTRAIT=1,** //竖屏
eMSDK_SCREENDIR_LANDSCAPE=2, //横屏
}eMSDK_SCREENDIR;
WGWebviewObserver
class WGWebviewObserver
{
public:
/*! @brief Webview回调
*
* 将创建的操作结果通知上层App
* @param WebviewRet 创建结果
* @return void
*/
virtual void OnWebviewNotify(WebviewRet& webviewRet)=0;
virtual ~WGWebviewObserver() {};
};
WGEmbeddedWebViewObserver
class WGEmbeddedWebViewObserver
{
public:
/**
* js调用的回调
* @param params 网页js接口传递过来的参数
*/
virtual void OnJsCallback(const char* params) = 0;
/**
* 浏览器打开界面的进度
* @param url 打开的url
* @param progress 打开url的进度,范围[0,1]
*/
virtual void OnWebProgressChanged(const char* url, float progress) = 0;
/**
* 浏览器关闭的回调
*/
virtual void OnWebClose() = 0;
virtual ~WGEmbeddedWebViewObserver() {};
};
WebviewRet
typedef struct {
int flag; //0成功
std::string msgData; //webviewNotify中H5页面js传递给游戏的自定义的数据
}WebviewRet;
TokenRet
票据信息
typedef struct {
int type;
std::string value;
long long expiration;
}
eTokenType
token种类
typedef enum _eTokenType
{
eToken_QQ_Access=1, // 手Q accessToken
eToken_QQ_Pay, // 手Q payToken
eToken_WX_Access, // 微信accessToken
eToken_WX_Code, // 微信code, 已弃用
eToken_WX_Refresh, // 微信refreshToken
eToken_Guest_Access, // Guest模式下的票据
eToken_Apple_Access, // Apple登录accessToken(支付、鉴权等使用)
eToken_Apple_Refresh // Apple登录refreshToken(游戏不需要关心)
}
平台 | token类型 | token作用 | type | 有效期 | |
---|---|---|---|---|---|
手Q | accesstoken | 查询手Q个人、好友、关系链、分享等功能 | eToken_QQ_Access | 90天 | |
手Q | paytoken | 支付相关 | eToken_QQ_Pay | 7天 | |
微信 | accesstoken | 查询微信个人、好友、关系链、分享、支付等 | eToken_WX_Access | 24小时 | |
微信 | refreshtoken | 刷新accesstoken | eToken_WX_Refresh | 30天 |
WakeupRet
存储游戏被平台唤醒时,平台传递到客户端的信息
typedef struct
{
int flag; //错误码
int platform; //被什么平台唤起
std::string media_tag_name; //wx回传得meidaTagName
std::string open_id; //qq传递的openid
std::string desc; //描述
std::string lang; //语言 目前只有微信5.1以上用,手Q不用
std::string country; //国家 目前只有微信5.1以上用,手Q不用
std::string messageExt; //游戏分享传入自定义字符串,平台拉起游戏不做任何处理返回 目前只有微信5.1以上用,手Q不用
std::vector<KVPair> extInfo; //游戏-平台携带的自定义参数手Q专用
}WakeupRet;
LocationRet
地理位置信息
typedef struct {
int flag;
std::string desc;
double longitude;
double latitude;
}LocationRet;
RelationRet
关系链信息,即“一群”好友的信息
typedef struct {
int flag; //查询结果flag,0为成功
std::string desc; // 描述
std::vector<PersonInfo> persons;//保存好友或个人信息
std::string extInfo; //游戏查询是传入的自定义字段,用来标示一次查询
eRelationRetType type; //区分回调来源 0为个人信息回调 1为同玩好友回调
}RelationRet;
PersonInfo
好友信息
typedef struct {
std::string nickName; //昵称
std::string openId; //账号唯一标示
std::string gender; //性别
std::string pictureSmall; //小头像
std::string pictureMiddle; //中头像
std::string pictureLarge; //datouxiang
std::string provice; //省份(老版本属性,为了不让外部app改代码,没有放在AddressInfo)
std::string city; //城市(老版本属性,为了不让外部app改代码,没有放在AddressInfo)
bool isFriend; //是否好友
int distance; //离此次定位地点的距离
std::string lang; //语言
std::string country; //国家
std::string gpsCity; //根据GPS信息获取到的城市
std::string friendRemark; //仅针对于wx,权限正常且微信正常返回好友备注时,该字段才存在
}PersonInfo;
分享信息
typedef struct
{
int platform; //平台类型
int flag; //操作结果
std::string desc; //结果描述(保留)
std::string extInfo; //游戏分享是传入的自定义字符串,用来标示分享
}ShareRet;
GroupRet
群组信息
typedef struct {
int flag; //0成功
int errorCode; //平台返回参数,当flag非0时需关注
std::string desc; //错误信息
int platform; //平台
QQGroupInfoV2 mQQGroupInfoV2;
#ifdef __APPLE__
WXGroupInfo wxGroupInfo; //微信群信息
QQGroupInfo qqGroupInfo; // QQ群信息
#endif
#ifdef ANDROID
WXGroupInfo mWXGroupInfo; //微信群信息
QQGroupInfo mQQGroupInfo; // QQ群信息
#endif
}GroupRet;
QQGroupInfoV2
Q群信息
typedef struct {
std::string groupName; //群名称
std::string fingerMemo; //群的相关简介
std::string memberNum; //群成员数
std::string maxNum; //该群可容纳的最多成员数
std::string ownerOpenid; //群主openid
std::string unionid; //与该QQ群绑定的公会ID
std::string zoneid; //大区ID
std::string adminOpenids; //管理员openid。如果管理员有多个的话,用“,”隔开,例如0000000000000000000000002329FBEF,0000000000000000000000002329FAFF
//群openID
std::string groupOpenid; //和游戏公会ID绑定的QQ群的groupOpenid
//加群用的群key
std::string groupKey; //需要添加的QQ群对应的key
std::string relation; //用户与群的关系,1群主,2管理员,3普通成员,4非成员
}QQGroupInfo;
WXGroupInfo
微信群信息
typedef struct {
std::string openIdList; //群成员openId,以","分隔
std::string memberNum; //群成员数
std::string chatRoomURL; //创建(加入)群聊URL
int status; //查询群状态的返回,0表示没有创建或者加群,1表示已经创建群或者加群
}WXGroupInfo;
eFlag
登录返回码
typedef enum _eFlag
{
eFlag_QQ_MessageContentEmpty=1010, // QQ消息为空
eFlag_QQ_MessageContentErr=1011, // QQ消息不可用(超长或其他)
eFlag_WX_NotInstall=2000, // Weixin is not installed
eFlag_WX_NotSupportApi=2001, // Weixin don't support api
eFlag_WX_UserCancel=2002, // Weixin user has cancelled
eFlag_WX_UserDeny=2003, // Weixin User has deny
eFlag_WX_LoginFail=2004, // Weixin login fail
eFlag_WX_RefreshTokenSucc=2005, // Weixin 刷新票据成功
eFlag_WX_RefreshTokenFail=2006, // Weixin 刷新票据失败
eFlag_WX_AccessTokenExpired=2007, // Weixin AccessToken失效, 此时可以尝试用refreshToken去换票据
eFlag_WX_RefreshTokenExpired=2008, // Weixin refresh token 过期, 需要重新授权
eFlag_WX_Group_HasNoAuthority=2009, //游戏没有建群权限
eFlag_WX_Group_ParameterError=2010, //参数检查错误
eFlag_WX_Group_HadExist=2011, //微信群已存在
eFlag_WX_Group_AmountBeyond=2012, //建群数量超过上限
eFlag_WX_Group_IDNotExist=2013, //群ID不存在
eFlag_WX_Group_IDHadCreatedToday=2014, //群ID当天建群数量超限
eFlag_WX_Group_JoinAmountBeyond=2015, //加群数量超限
eFlag_WX_Group_NotInGroup=2016, //不在群中,发送群消息时若不在群中(被群主踢出群等)
eFlag_Error=-1,
eFlag_Local_Invalid=-2, // 本地票据无效, 要游戏现实登陆界面重新授权
eFlag_NotInWhiteList=-3, // 不在白名单(for Android)
eFlag_LbsNeedOpenLocationService=-4, // 需要引导用户开启定位服务
eFlag_LbsLocateFail=-5, // 定位失败
eFlag_UrlTooLong=-6, // for WGOpenUrl
eFlag_InvalidOnGuest=-7, // 该功能在Guest模式下不可使用(for ios)
eFlag_NetworkError=-8, // 网络请求出错(发送失败,超时,无回包等)
eFlag_UnPermission=-9, // 用户未授权关系链权限
eFlag_IllegalParams=-10, //非法参数
eFlag_NeedLogin=3001, //需要进入登陆页
eFlag_UrlLogin=3002, //使用URL登陆成功
eFlag_NeedSelectAccount=3003, //需要弹出异账号提示
eFlag_AccountRefresh=3004, //通过URL将票据刷新
eFlag_NeedRealNameAuth=3005, //中控相关返回值
eFlag_Need_Realname_Auth=3005, //中控相关返回值 ,兼容之前的版本的错误码(for Android)
eFlag_Need_MSDK_Realname_Auth=3006, // 正在进行MSDK实名认证,请忽调用游戏自定义的实名认证界面
eFlag_Guest_AccessTokenInvalid=4001, // Guest的票据失效(for ios)
eFlag_Guest_LoginFailed=4002, // Guest模式登录失败(for ios)
eFlag_Guest_RegisterFailed=4003, // Guest模式注册失败(for ios)
eFlag_Checking_Token=5001, //正在检查票据
eFlag_Logining=5002, //正在登录中,请等待登录回调后再操作
eFlag_Login_Timeout=5003, //正在登录中,请等待登录回调后再操作
eFlag_RequestTooFrequently=5004,//调用接口太频繁
eFlag_WebviewClosed=6001, //内置浏览器关闭
eFlag_Invalid_Delete_Account_URL=6002, //打开注销账号的url无效
eFlag_Invalid_Login_Channel=6003, //注销账号操作时未登录或渠道不支持
eFlag_Webview_page_event=7000, //webview js给native传递参数的事件
//Apple 登录返回码说明
eFlag_Apple_NotSupport=8002, //iOS 13 以下版本不支持 Apple 登录
eFlag_Apple_UserCancel=8003, //用户取消
eFlag_Apple_LoginFailed=8004, //Apple 登录失败,具体的原因查看 des 字段
eFlag_Apple_AccessTokenExpired=8005, //Apple access token 过期,需要重新登录
eFlag_Apple_Revoked=8006, //用户撤销了该授权,需要重新登录
eFlag_Apple_NotFound=8007, //用户没有对其授权
eFlag_Apple_Unknown=8008, //未知错误,请查看 des 字段
eFlag_Apple_NetworkError=8009, //网络错误
}eFlag;
``
手Q相关:
返回码 | 名称 | 描述 | 推荐处理 |
---|---|---|---|
1000 | eFlag_QQ_NoAcessToken | 手Q登陆失败,未获取到accesstoken | 返回登录界面,引导玩家重新登录授权 |
1001 | eFlag_QQ_UserCancel | 玩家取消手Q授权登录 | 返回登录界面,并告知玩家已取消手Q授权登录 |
1002 | eFlag_QQ_LoginFail | 手Q登陆失败 | 返回登录界面,引导玩家重新登录授权 |
1003 | eFlag_QQ_NetworkErr | 网络错误 | 重试 |
1004 | eFlag_QQ_NotInstall | 玩家设备未安装手Q客户端 | 引导玩家安装手Q客户端 |
1005 | eFlag_QQ_NotSupportApi | 玩家手Q客户端不支持此接口 | 引导玩家升级手Q客户端 |
1006 | eFlag_QQ_AccessTokenExpired | accesstoken过期 | 返回登录界面,引导玩家重新登录授权 |
1007 | eFlag_QQ_PayTokenExpired | paytoken过期 | 返回登录界面,引导玩家重新登录授权 |
微信相关:
返回码 | 名称 | 描述 | 推荐处理 |
---|---|---|---|
2000 | eFlag_WX_NotInstall | 玩家设备未安装微信客户端 | 引导玩家安装微信客户端 |
2001 | eFlag_WX_NotSupportApi | 玩家微信客户端不支持此接口 | 引导玩家升级微信客户端 |
2002 | eFlag_WX_UserCancel | 玩家取消微信授权登录 | 返回登录界面,并告知玩家已取消微信授权登录 |
2003 | eFlag_WX_UserDeny | 玩家拒绝微信授权登录 | 返回登录界面,并告知玩家已拒绝微信授权登录 |
2004 | eFlag_WX_LoginFail | 微信登录失败 | 返回登录界面,引导玩家重新登录授权 |
2005 | eFlag_WX_RefreshTokenSucc | 微信刷新票据成功 | 获取微信票据,登录进入游戏 |
2006 | eFlag_WX_RefreshTokenFail | 微信刷新票据失败 | 返回登录界面,引导玩家重新登录授权 |
2007 | eFlag_WX_AccessTokenExpired | 微信accessToken过期 | 尝试用refreshtoken刷新票据 |
2008 | eFlag_WX_RefreshTokenExpired | 微信refreshtoken过期 | 返回登录界面,引导玩家重新登录授权 |
异账号相关:
返回码 | 名称 | 描述 | 推荐处理 |
---|---|---|---|
3001 | eFlag_NeedLogin | 游戏本地账号和拉起账号均无法登陆 | 返回登录界面,引导玩家重新登录授权 |
3002 | eFlag_UrlLogin | 不存在异账号,游戏通过拉起账号快速登陆成功 | 读取LoginRet结构体中的票据进行游戏授权流程 |
3003 | eFlag_NeedSelectAccount | 游戏本地账号和拉起账号存在异账号 | 弹出对话框让用户选择登陆的账号 |
3004 | eFlag_AccountRefresh | 不存在异账号,MSDK已通过刷新接口将本地账号票据刷新 | 读取LoginRet结构体中的票据进行游戏授权流程 |
手QQ群(v2)相关:
返回码 | 描述 | 推荐处理 |
---|---|---|
221001 | 已绑定群 | 无需处理 |
221002 | 未绑定群 | 无需处理 |
221003 | 绑群回包错误 | 无需处理 |
221004 | 获取uin和tskey失败 | 检查登录态是否正确 |
221005 | 当前用户不是群主 | 无需处理 |
221006 | 无效的openid | 检查openid是否有效 |
221007 | 参数无效 | 检查接口参数,如appid,guild_id,zone_id,gc等等,具体请参考接口参数列表 |
221008 | 无接口调用权限 | 参照权限管理申请权限 |
-182001 | 请求群后台cgi失败 | 无需处理 |
-182002 | 操作cmem失败 | 无需处理 |
-182003 | 创建群失败 | 无需处理 |
-182004 | 查询群失败 | 无需处理 |
-182005 | openid转uin失败 | 无需处理 |
-182008 | 查询idip失败 | 无需处理 |
-500003~-500009 | 解析服务返回数据失败 | 无需处理 |
-120000 | 登录态校验失败 | 检查登录态是否有效 |
微信群(创建群,解绑群)相关:
返回码 | 描述 | 推荐处理 |
---|---|---|
-1 | 系统错误 | 重试一次,若失败请通过企业QQ(800013811)联系移动网游MSDK技术支持人员。 |
-10000 | 内部错误 | 游戏没有在开平开通创建群的权限。 |
-10001 | 该游戏没有建群权限 | 游戏没有在游戏中心开通创建群的权限。 |
-10002 | 参数检查错误 | 确认参数准确性,若失败请通过企业QQ(800013811)联系移动网游MSDK技术支持人员。 |
-10003 | 链接不存在(与群无关) | 无 |
-10004 | 获取跳转链接失败(与群无关) | 无 |
-10005 | 群ID已存在 | 不要重复建群 |
-10007 | 群ID不存在 | 换一个存在的群ID |
-10008 | 群ID不可用 | |
-10009 | 用户不在群里 | 无 |
-20001 | 解绑群达到上限 | 解绑群不能超过20个 |
-20002 | 用户创建群达到上限 | |
-201608 | kv读失败 | 联系微信相关接口人员 |
-201609 | kv写失败 | 联系微信相关接口人员 |
微信群(创建群,解绑群)2.18.0以后版本使用,此错误码anroid和ios是统一的相关:
返回码 | 描述 | 推荐处理 |
---|---|---|
-1 | 系统错误 | 重试一次,若失败请通过企业QQ(800013811)联系移动网游MSDK技术支持人员 |
2014 | 当天建群数量超限 | 换个id创建 |
2015 | 加群数量超限 | 可更换其他账号验证 |
2009 | 没有建群权限 | 找产品人员开通权限。 |
2012 | 建群或者解绑群数量超过上限 | 无 |
2011 | 微信群已经存在 | 无 |
2013 | 群ID不存在 | 无 |
2010 | 参数检查错误 | 无 |
eQQScene
手Q场景枚举
typedef enum _eQQScene
{
QQScene_QZone =1,//默认弹出分享到Qzone的弹框
QQScene_Session=2,//默认弹出分享给好友的弹框
}eQQScene;
eWechatScene
微信场景枚举
typedef enum _eWechatScene
{
WechatScene_Session =0,
WechatScene_Timeline=1,
}eWechatScene;
ePlatform
平台枚举
typedef enum _ePlatform
{
ePlatform_None,
ePlatform_Weixin,
ePlatform_QQ
#ifdef ANDROID
,
ePlatform_WTLogin,
ePlatform_QQHall
#endif
#ifdef __APPLE__
,
ePlatform_Guest=5,
ePlatform_Auto=6,
ePlatform_Apple=7 // Apple 登录
#endif
ePlatform_WeixinVideoLive=8 //微信视频号登录
}ePlatform;
eStatusType
typedef enum _eStatusType {
eStatusType_ISCREATED=0, // 查询是否建群
eStatusType_ISJONINED=1, // 查询是否加群
} eStatusType;
eRelationRetType
public enum eRelationRetType{
eRet_QueryMyInfo=0,
eRet_QueryGameFriends=1
}
NoticeInfo
公告信息
typedef struct
{
std::string msg_id; //公告id
std::string open_id; //用户open_id
std::string msg_url; //公告跳转链接
eMSG_NOTICETYPE msg_type; //公告类型,eMSG_NOTICETYPE
std::string msg_scene; //公告展示的场景,管理端后台配置
std::string start_time; //公告有效期开始时间
std::string end_time; //公告有效期结束时间
eMSG_CONTENTTYPE content_type; //公告内容类型,eMSG_CONTENTTYPE
//网页公告特殊字段
std::string content_url; //网页公告URL
//图片公告特殊字段
std::vector<PicInfo> picArray; //图片数组
//文本公告特殊字段
std::string msg_title; //公告标题
std::string msg_content; //公告内容
int msg_order; //公告优先级,越大优先级越高,MSDK2.8.0版本新增
std::string msg_custom; //公告自定义参数
}NoticeInfo;
eBuglyLogLevel
上报日志到bugly的日志级别
typedef enum _eBuglyLogLevel
{
eBuglyLogLevel_S=0, //Silent
eBuglyLogLevel_E=1, //Error
eBuglyLogLevel_W=2, //Warning
eBuglyLogLevel_I=3, //Info
eBuglyLogLevel_D=4, //Debug
eBuglyLogLevel_V=5 //Verbose
}eBuglyLogLevel;
LocalMessage
typedef struct
{
std::string fireDate; //本地推送触发的时间,格式yyyy-MM-dd HH:mm:ss
std::string alertBody; //推送的内容
int badge; //角标的数字
std::string alertAction; //替换弹框的按钮文字内容(默认为"启动")
std::vector<KVPair> userInfo;//自定义参数,可以用来标识推送和增加附加信息
std::string userInfoKey; //本地推送在前台推送的标识Key
std::string userInfoValue; //本地推送在前台推送的标识Key对应的值
}LocalMessage;
GetCountryFromIPRet
typedef struct
{
int ret; // 查询结果flag,0为成功
std::string msg; // 描述
std::string country; // 国家
bool isQueryByRequestHeader; // 标志是否请求头查询
} GetCountryFromIPRet;
CheckULRet
typedef struct sCheckULRet
{
int step; //检查步骤
bool success; // 检测是否成功
std::string errorInfo; //错误信息
std::string suggestion; // 建议开发者处理方案
sCheckULRet() {}
} CheckULRet;
eULCheckStep
typedef enum _eULCheckStep {
eULCheckStepParams, // 参数检查
eULCheckStepSystemVersion, // 当前系统版本检查
eULCheckStepWechatVersion, // 微信客户端版本检查
eULCheckStepSDKInnerOperation, // 微信SDK内部操作检查
eULCheckStepLaunchWechat, // App拉起微信检查
eULCheckStepBackToCurrentApp, // 由微信返回当前App检查
eULCheckStepFinal, // 最终检查
} eULCheckStep;
GetIPInfoRet
typedef struct
{
int ret; //查询结果flag, 0为成功
int country_no; //国家编号
int province_no; //省份编号
int city_no; //城市编号
std::string msg; //描述
std::string country; //国家
std::string province; //省份
std::string city; //城市
bool isQueryByRequestHeader; //标志是否请求头查询
} GetIPInfoRet;