公会绑群
Unity3D
概述
接入向导
手Q群功能
微信群功能
常见问题
Android
概述
接入向导
手Q群功能
微信群功能
常见问题
IOS
概述
接入向导
手Q群功能
微信群功能
常见问题
其他
数据结构
系统工具
公会绑群 / IOS / 概述

概述

通过调用MSDK群功能,游戏内帮派的会长玩家可以进行帮派绑定聊天群,解绑帮派绑定的聊天群,普通玩家可以加入帮派的聊天群,轻松给游戏增加玩家群体互动的能力,实现玩家活跃度和黏度的双重提升。 目前聊天群支持QQ群和微信群,每个帮派最多绑定一个QQ群和一个微信群

显示详情

接入向导

1 前置条件

1) 您已经按接入配置模块说明完成 接入配置

2) 您已经按接入登录模块说明完成 接入登录

手Q群功能新版V2(3.2.5a及以上版本)

1 概要说明

手Q新版加绑群功能简化了老版本复杂的加绑群流程。
接口调用流程如下图:

会长创建公会群/进入公会流程图

普通玩家加入公会/公会成员进入公会流程图

2 注册回调

1)功能描述

查询群信息的调用结果会通过此回调异步通知到游戏 ,手Q和微信群功能共用此回调。

2)接口声明
void WGSetGroupObserver(WGGroupObserver Observer)
3)参数名称
参数名称 类型 说明
Observer WGGroupObserver 类 群功能信息类
4)返回值

5)示例代码
    void MyObserver::OnCreateGroupV2Notify(GroupRet& groupRet) {
        // v2的创建手Q 群回调,v2的群接口回调信息全部在mQQGroupInfoV2里面
        //创建回调处理示例:
        /*if(groupRet.flag == CallbackFlag.eFlag_Succ){
            Vector<QQGroup> qqGroups = groupRet.mQQGroupInfoV2.qqGroups;
            if(qqGroups != null && qqGroups.size() > 0){
                QQGroup qqGroup = qqGroups.get(0);
                String groupId = qqGroup.groupId;  // 群id
                String groupName = qqGroup.groupName; // 群名称
            }
        }else{
            int errorCode = groupRet.errorCode;
            // 根据errorCode进行处理
        }*/

    }

    void MyObserver::OnJoinGroupV2Notify(GroupRet& groupRet) {
        // v2的加入手Q 群回调,v2的群接口回调信息全部在mQQGroupInfoV2里面
        //加入群回调处理示例:
        /*if(groupRet.flag == CallbackFlag.eFlag_Succ){
            // 加群成功
        }else{
            int errorCode = groupRet.errorCode;
            // 根据errorCode进行处理
        }*/

    }

    void MyObserver::OnQueryGroupInfoV2Notify(GroupRet& groupRet) {
        // v2的查询与手Q群关系回调,v2的群接口回调信息全部在mQQGroupInfoV2里面
        //查询与手Q群关系回调处理示例:
        /*if(groupRet.flag == CallbackFlag.eFlag_Succ){
            //用户与群的关系,1:群主,2:管理员,3:普通成员,4:非成员 ,-1 查询错误
            int relation = groupRet.mQQGroupInfoV2.relation;

        }else{
            int errorCode = groupRet.errorCode;
            // 根据errorCode进行处理
        }*/

    }

    void MyObserver::OnUnbindGroupV2Notify(GroupRet& groupRet) {
        // v2的解绑手Q 群回调,v2的群接口回调信息全部在mQQGroupInfoV2里面
        //解绑手Q 群回调处理示例:
        /*if(groupRet.flag == CallbackFlag.eFlag_Succ){
            Vector<QQGroup> qqGroups = groupRet.mQQGroupInfoV2.qqGroups;
            if(qqGroups != null && qqGroups.size() > 0){
                QQGroup qqGroup = qqGroups.get(0);
                String groupId = qqGroup.groupId;  // 解绑的群id(解绑只返回群id)
            }
        }else{
            int errorCode = groupRet.errorCode;
            // 根据errorCode进行处理
        }*/

    }

    void MyObserver::OnGetGroupCodeV2Notify(GroupRet& groupRet) {
        // v2获取工会绑定的群信息回调,v2的群接口回调信息全部在mQQGroupInfoV2里面
        //获取工会绑定的群号回调处理示例:
        /*if(groupRet.flag == CallbackFlag.eFlag_Succ){
            Vector<QQGroup> qqGroups = groupRet.mQQGroupInfoV2.qqGroups;
            if(qqGroups != null && qqGroups.size() > 0){
                QQGroup qqGroup = qqGroups.get(0);
                String groupId = qqGroup.groupId;  // 群id
                String groupName = qqGroup.groupName; // 群名称
            }
        }else{
            int errorCode = groupRet.errorCode;
            // 根据errorCode进行处理
        }*/

    }

    void MyObserver::OnQueryBindGuildV2Notify(GroupRet& groupRet) {
        // v2查询群绑定的工会回调,v2的群接口回调信息全部在mQQGroupInfoV2里面
        //查询群绑定的工会回调处理示例:
        /*if(groupRet.flag == CallbackFlag.eFlag_Succ){
            String guildId = groupRet.mQQGroupInfoV2.guildId;
            String guildName = groupRet.mQQGroupInfoV2.guildName;
        }else{
            int errorCode = groupRet.errorCode;
            // 根据errorCode进行处理
        }*/

    }

    void MyObserver::OnBindExistGroupV2Notify(GroupRet& groupRet) {
        // v2绑定已存在的手Q群回调,v2的群接口回调信息全部在mQQGroupInfoV2里面
        //绑定已存在的手Q群回调处理示例:
        /*if(groupRet.flag == CallbackFlag.eFlag_Succ){
            Vector<QQGroup> qqGroups = groupRet.mQQGroupInfoV2.qqGroups;
            if(qqGroups != null && qqGroups.size() > 0){
                QQGroup qqGroup = qqGroups.get(0);
                String groupId = qqGroup.groupId;  // 群id
                String groupName = qqGroup.groupName; // 群名称
            }
        }else{
            int errorCode = groupRet.errorCode;
            // 根据errorCode进行处理
        }*/

    }

    void MyObserver::OnGetGroupListV2Notify(GroupRet& groupRet) {
        // v2获取创建的手Q群列表回调,v2的群接口回调信息全部在mQQGroupInfoV2里面
        //获取创建的手Q群列表回调处理示例:
        /*if(groupRet.flag == CallbackFlag.eFlag_Succ){
            Vector<QQGroup> qqGroups = groupRet.mQQGroupInfoV2.qqGroups;
            if(qqGroups != null && qqGroups.size() > 0){
                for(QQGroup qqGroup : qqGroups){
                    String groupId = qqGroup.groupId;  // 群id
                    String groupName = qqGroup.groupName; // 群名称
                }
            }
        }else{
            int errorCode = groupRet.errorCode;
            // 根据errorCode进行处理
        }*/

    }

    void MyObserver::OnRemindGuildLeaderV2Notify(GroupRet& groupRet) {
        // v2提醒工会会长绑群回调,v2的群接口回调信息全部在mQQGroupInfoV2里面
        //提醒工会会长绑群回调处理示例:
        /*if(groupRet.flag == CallbackFlag.eFlag_Succ){
            // 提醒成功
        }else{
            int errorCode = groupRet.errorCode;
            // 根据errorCode进行处理
        }*/

    }
6)特殊说明

msdk3.2版本以后所有v2的群接口都使用新的v2群回调

7)名称解释

1 调用创建QQ群接口(v2)

1)功能描述

公会会长创建并直接绑定QQ群接口,结果会通过WGGroupObserver的 OnCreateGroupV2Notify 回调给游戏。

2)接口声明
void WGCreateQQGroupV2(GameGuild& gameGuild);
3)参数说明

GameGuild:设置参数说明

参数名称 类型 说明
guildId String (必填)公会id;字符串里需要使用数值,如:"123456"
guildName String (必填)公会昵称
zoneId String (必填)大区id
roleId String (必填)角色id
partition String (选填)区服id(小区),可以不填写,暂时无用
userZoneId String (选填)用户的区服ID,会长可能转让给非本区服的人,所以公会区服不一定是用户区服
userLabel String (选填)修改群名片,不填为不修改群名片,规则"【YYYY】zzzz" YYYY指用户的游戏数据,zzzz指用户游戏内的昵称
nickName String (选填)用户昵称
type String (必填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
areaId String (必填)游戏大区ID,"1"qq(默认),"2"微信
4)返回值

无,结果会通过WGGroupObserver的 OnCreateGroupV2Notify 回调给游戏。

5)示例代码:
GameGuild gameGuild;
gameGuild.guildName = [[param objectForKey:@"msdk"] UTF8String];
gameGuild.guildId = [[param objectForKey:@"100703379"] UTF8String];
gameGuild.roleId = [[param objectForKey:@"静静"] UTF8String];
gameGuild.partition = [[param objectForKey:@"10"] UTF8String];
gameGuild.zoneId = [[param objectForKey:@"100"] UTF8String];
WGPlatform::GetInstance()->WGCreateQQGroupV2(gameGuild);
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

2 调用查询QQ群关系接口(v2)

1)功能描述

当公会已绑定群后,调用该接口查询用户与群关系信息接口;可返回用户与群的关系(群主、管理员、普通成员,非成员)信息,结果会通过WGGroupObserver的 OnQueryGroupInfoV2Notify 回调给游戏。

2)接口声明
void WGQueryQQGroupInfoV2(String groupId);
3)参数说明
参数名称 类型 说明
groupId String 创建群时返回的群id(群id即为群号)
4)返回值

无,结果会通过WGGroupObserver的 OnQueryGroupInfoV2Notify 回调给游戏。

5)示例代码:
WGPlatform::GetInstance()->WGQueryQQGroupInfoV2("11002222");
6)特殊说明

7)名称解释

3 调用加入QQ群接口(v2)

1)功能描述

游戏内公会成员加入QQ群接口;调用该接口前,先调用WGQueryQQGroupInfoV2接口查询用户是否是群成员,当用户为非群成员身份时,显示加群按钮,结果会通过WGGroupObserver的 OnJoinGroupV2Notify 回调给游戏。

2)接口声明

注意调用函数时参数传递的顺序

void WGJoinQQGroupV2(GameGuild& gameGuild,String groupId);
3)参数说明
参数名称 类型 说明
gameGuild GameGuild (必填)公会信息
groupId String (必填)群id(群id即为群号)

GameGuild:设置参数说明

参数名称 类型 说明
guildId String (必填)公会id;字符串里需要使用数值,如:"123456"
zoneId String (必填)大区id;如涉及跨服加入群,填写公会所在区服id
roleId String (必填)角色id
partition String (选填)区服id(小区),可以不填写,暂时无用
userZoneId String (选填;如涉及跨服加入群时必须传入,填写用户所在区服)用户的区服ID,会长可能转让给非本区服的人,所以公会区服不一定是用户区服
userLabel String (选填)修改群名片,不填为不修改群名片,规则"【YYYY】zzzz" YYYY指用户的游戏数据,zzzz指用户游戏内的昵称
nickName String (选填)用户昵称
type String (必填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
areaId String (必填)游戏大区ID,"1"qq(默认),"2"微信
4)返回值

无,结果会通过WGGroupObserver的 OnJoinGroupV2Notify 回调给游戏。

5)示例代码:
GameGuild gameGuild;
gameGuild.guildId = [[param objectForKey:@"100703379"] UTF8String];
gameGuild.roleId = [[param objectForKey:@"静静"] UTF8String];
gameGuild.partition = [[param objectForKey:@"10"] UTF8String];
gameGuild.zoneId = [[param objectForKey:@"100"] UTF8String];
WGPlatform::GetInstance()->WGJoinQQGroupV2(gameGuild,"11002222");
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

4 调用解绑QQ群接口(v2)

1)功能描述

游戏内与QQ群解绑接口;如果用户解散了公会QQ群,公会和公会QQ群不会自动解绑,当群被解散,如何进行解绑操作,可以参考常见问题 里的说明,结果会通过WGGroupObserver的 OnUnbindGroupV2Notify 回调给游戏。

2)接口声明
void WGUnbindQQGroupV2(GameGuild& gameGuild);
3)参数说明

GameGuild:设置参数说明

参数名称 类型 说明
guildId String (必填)公会id;字符串里需要使用数值,如:"123456"
guildName String (必填)公会名称
zoneId String (必填)大区id
userZoneId String (选填)用户的区服ID,会长可能转让给非本区服的人,所以公会区服不一定是用户区服
type String (必填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
areaId String (必填)游戏大区ID,"1"qq(默认),"2"微信
4)返回值

无,结果会通过WGGroupObserver的 OnUnbindGroupV2Notify 回调给游戏。

5)示例代码:
GameGuild gameGuild;
gameGuild.guildId = [[param objectForKey:@"100703379"] UTF8String];
gameGuild.guildName = [[param objectForKey:@"msdk"] UTF8String];
gameGuild.zoneId = [[param objectForKey:@"100"] UTF8String];
WGPlatform::GetInstance()->WGUnbindQQGroupV2(gameGuild);
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

5 调用绑定已存在的手q群接口(v2)

1)功能描述

会长可将公会绑定到自己已经创建的QQ群接口;调用该接口前先调用WGGetQQGroupListV2接口拉取已创建的群列表;结果会通过WGGroupObserver的 OnBindExistGroupV2Notify 回调给游戏。

2)接口声明
void WGBindExistQQGroupV2(GameGuild& gameGuild,String groupId,String groupName);
3)参数说明
参数名称 类型 说明
gameGuild GameGuild (必填)公会信息
groupId String (必填)群id(群id即为群号)
groupName String (必填)群昵称

GameGuild:设置参数说明

参数名称 类型 说明
guildId String (必填)公会id;字符串里需要使用数值,如:"123456"
roleId String (必填)角色ID
zoneId String (必填)大区id
userZoneId String (选填)用户的区服ID,会长可能转让给非本区服的人,所以公会区服不一定是用户区服
type String (必填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
areaId String (必填)游戏大区ID,"1"qq(默认),"2"微信
4)返回值

无,结果会通过WGGroupObserver的 OnBindExistGroupV2Notify 回调给游戏。

5)示例代码:
GameGuild gameGuild;
gameGuild.guildId = [[param objectForKey:@"100703379"] UTF8String];
gameGuild.roleId = [[param objectForKey:@"10"] UTF8String];
gameGuild.zoneId = [[param objectForKey:@"100"] UTF8String];
WGPlatform::GetInstance()->WGBindExistQQGroupV2(gameGuild,"111022","msdk");
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

6 调用获取绑定的手q群的群信息接口(v2)

1)功能描述

获取绑定的手q群的群信息;通过公会ID能拉取到QQ群的群号码,则有绑群;在创建群时候若没有输入公会名称,则此时获取的群名称为空。 结果会通过WGGroupObserver的 OnGetGroupCodeV2Notify 回调给游戏。

2)接口声明
void WGGetQQGroupCodeV2(GameGuild& gameGuild);
3)参数说明

GameGuild:设置参数说明

参数名称 类型 说明
guildId String (必填)公会id;字符串里需要使用数值,如:"123456"
zoneId String (必填)大区id
type String (选填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
4)返回值

无,结果会通过WGGroupObserver的 OnGetGroupCodeV2Notify 回调给游戏。

5)示例代码:
GameGuild gameGuild;
gameGuild.guildId = [[param objectForKey:@"100703379"] UTF8String];
gameGuild.roleId = [[param objectForKey:@"10"] UTF8String];
gameGuild.zoneId = [[param objectForKey:@"100"] UTF8String];
WGPlatform::GetInstance()->WGGetQQGroupCodeV2(gameGuild);
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

7 调用查询群绑定的工会接口(v2)

1)功能描述

根据群ID(群号)查询绑定的公会信息,结果会通过WGGroupObserver的 OnQueryBindGuildV2Notify 回调给游戏。

2)接口声明
void WGQueryBindGuildV2(String groupId, int type);
3)参数说明
参数名称 类型 说明
groupId String (必填)群id(群id即为群号)
type int (必填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
4)返回值

无,结果会通过WGGroupObserver的 OnQueryBindGuildV2Notify 回调给游戏。

5)示例代码:
WGPlatform::GetInstance()->WGQueryBindGuildV2("111002",0);
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

8 调用查询创建的QQ群列表接口(v2)

1)功能描述

当会长将公会绑定自己已经创建的QQ群时,用于查询已创建的QQ群列表,结果会通过WGGroupObserver的 OnGetGroupListV2Notify 回调给游戏。

2)接口声明
void WGGetQQGroupListV2();
3)参数说明

4)返回值

无,结果会通过WGGroupObserver的 OnGetGroupListV2Notify 回调给游戏。

5)示例代码:
WGPlatform::GetInstance()->WGGetQQGroupListV2();
6)特殊说明

7)名称解释

9 调用提醒工会会长绑群接口(v2)

1)功能描述

当公会未绑群时,会员可提醒会长绑群接口;把公会绑定到我已创建的QQ群,通过公众号“QQ手游"接收通知,频率限制每天只收到一条;校验提醒者和被提醒者为必须为公会成员,游戏方来保证被提醒人为公会会长,结果会通过WGGroupObserver的 OnRemindGuildLeaderV2Notify 回调给游戏。

2)接口声明

注意调用函数时参数传递的顺序

void WGRemindGuildLeaderV2(GameGuild& gameGuild);
3)参数说明

GameGuild:设置参数说明

参数名称 类型 说明
guildId String (必填)公会id;字符串里需要使用数值,如:"123456"
zoneId String (必填)大区id
roleId String (必填)角色id
roleName String (必填)角色名称
leaderOpenid String (必填)公会会长的openid
leaderRoleId String (必填)公会会长的roleid
leaderZoneId String (选填)会长区服信息,会长可以转让给非本区服的人
userZoneId String (选填)用户的区服ID,会长可能转让给非本区服的人,所以公会区服不一定是用户区服
type String (必填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
areaId String (必填)游戏大区ID,"1"qq(默认),"2"微信
4)返回值

无,结果会通过WGGroupObserver的 OnRemindGuildLeaderV2Notify 回调给游戏。

5)示例代码:
GameGuild gameGuild;
gameGuild.guildId = [[param objectForKey:@"100703379"] UTF8String];
gameGuild.roleId = [[param objectForKey:@"12"] UTF8String];
gameGuild.roleName = [[param objectForKey:@"静静"] UTF8String];
gameGuild.zoneId = [[param objectForKey:@"100"] UTF8String];
gameGuild.leaderOpenid = [[param objectForKey:@"78AADD8DC9CF80E655EE68039B1D02C9"] UTF8String];
gameGuild.leaderZoneId= [[param objectForKey:@"1234"] UTF8String];
WGPlatform::GetInstance()->WGRemindGuildLeaderV2(gameGuild);
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

微信群功能

1 概要说明

您先注册微信群功能回调然后再按推荐流程调用微信群功能接口即可接入微信群功能 接口调用流程如下图:

2 设置群信息回调

1)功能描述

调用微信群功能相关接口前需先设置群消息回调,以便将微信建群、查询群信息、加群结果回调给游戏。

2)接口声明
void WGSetGroupObserver(WGGroupObserver* pGroupObserver);
3)参数说明
参数名称 类型 说明
pGroupObserver WGGroupObserver 类 群功能回调信息
4)返回值

5)示例代码
MyObserver *ob = MyObserver::GetInstance();
WGPlatform::GetInstance()->WGSetGroupObserver(ob);
6)特殊说明

7)名词解释

3 查询微信群信息

1)功能描述

游戏内查询公会微信群信息,用于检查是否创建微信公会群以及对应用户是否加入群。

2)接口声明
void WGQueryWXGroupInfo(
                        unsigned char* unionID,
                        unsigned char* openIdLists
                        );
3)参数说明
参数名称 类型 说明
unionID unsigned char* 公会ID
openIdLists unsigned char* 待检查是否在群里的用户openid列表,以","逗号分割
4)返回值

无,调用结果会通过OnQueryGroupInfoNotify回调给游戏

5)示例代码
WGPlatform::GetInstance()->WGQueryWXGroupInfo((unsigned char*)[self.wxGroupUnionId UTF8String],
                                              (unsigned char*)[self.wxGroupQueryOpenIDLists UTF8String]);
6)特殊说明

7)名词解释

4 处理查询微信群信息回调

1)功能描述

将查询到的微信群信息回调给游戏。

2)接口声明
virtual void OnQueryGroupInfoNotify(GroupRet& groupRet) = 0;
3)参数说明
参数名称 类型 说明
groupRet GroupRet 类 群功能回调信息
4)返回值

5)示例代码
void MyObserver::OnQueryGroupInfoNotify(GroupRet& groupRet)
{
    if (groupRet.flag == 0)
    {
        NSLog(@"查询群成员成功");
    }
    else
    {
        switch (groupRet.errorCode)
        {
            case eFlag_Error:
                // 系统错误
                NSLog(@"系统错误,请重试");
                break;
            case eFlag_WX_Group_ParameterError:
                //参数检查错误
                NSLog(@"系统错误,参数检查错误,请检查参数后重试");
                break;
            case eFlag_WX_Group_IDNotExist:
                //群ID不存在
                NSLog(@"系统错误,群ID不存在,请检查后重试");
                break;
            default:
                break;
        }
    }
}
6)特殊说明

7)名词解释

5 创建公会微信群

1)功能描述

游戏内创建公会微信群。

2)接口声明
void WGCreateWXGroup(
                     unsigned char* unionid,
                     unsigned char* chatRoomName,
                     unsigned char* chatRoomNickName
                     );
3)参数说明
参数名称 类型 说明
unionid unsigned char* 公会id
chatRoomName unsigned char* 聊天群名称
chatRoomNickName unsigned char* 用户在聊天群的自定义昵称
4)返回值

无,调用结果会通过OnCreateWXGroupNotify回调给游戏

5)示例代码
WGPlatform::GetInstance()->WGCreateWXGroup((unsigned char*)[self.wxGroupUnionId UTF8String],
                                           (unsigned char*)[self.wxGroupChatRoomName UTF8String],
                                           (unsigned char*)[self.wxGroupChatRoomNickName UTF8String]);
6)特殊说明

7)名词解释

6 处理创建微信群回调

1)功能描述

将微信建群结果回调给游戏。

2)接口声明
virtual void OnCreateWXGroupNotify(GroupRet& groupRet) = 0;
3)参数说明
参数名称 类型 说明
groupRet GroupRet 类 群功能回调信息
4)返回值

5)示例代码
void MyObserver::OnCreateWXGroupNotify(GroupRet& groupRet)
{
    if (groupRet.flag == eFlag_Succ)
    {
        NSLog(@"创建微信群成功");
    }
    else
    {
        switch (groupRet.errorCode)
        {
            case eFlag_Error:
                // 系统错误
                NSLog(@"系统错误,请重试");
                break;
            case eFlag_WX_Group_HasNoAuthority:
                // 该游戏没有建群权限
                NSLog(@"系统错误,游戏没有建群权限,请重试");
                break;
            case eFlag_WX_Group_ParameterError:
                //参数检查错误
                NSLog(@"系统错误,参数检查错误,请检查参数后重试");
                break;
            case eFlag_WX_Group_HadExist:
                //群ID已存在
                NSLog(@"系统错误,微信群已存在,请检查后重试");
                break;
            case eFlag_WX_Group_AmountBeyond:
                //建群数量超过上限
                NSLog(@"系统错误,建群数量超过上限,请检查后重试");
                break;
            default:
                break;
        }
    }
}
6)特殊说明

7)名词解释

7 加入公会微信群

1)功能描述

游戏内加入公会微信群。

2)接口声明
void WGJoinWXGroup(
                   unsigned char* unionid,
                   unsigned char* chatRoomNickName
                   );
3)参数说明
参数名称 类型 说明
unionid unsigned char* 公会id
chatRoomNickName unsigned char* 用户在聊天群的自定义昵称
4)返回值

无,调用结果会通过OnJoinWXGroupNotify回调给游戏

5)示例代码
WGPlatform::GetInstance()->WGJoinWXGroup((unsigned char*)[self.wxGroupUnionId UTF8String],
                                         (unsigned char*)[self.wxGroupChatRoomNickName UTF8String]);    
6)特殊说明

7)名词解释

8 处理加入微信群回调

1)功能描述

将加入微信群结果回调给游戏。

2)接口声明
virtual void OnJoinWXGroupNotify(GroupRet& groupRet) = 0;
3)参数说明
参数名称 类型 说明
groupRet GroupRet 类 群功能回调信息
4)返回值

5)示例代码
void MyObserver::OnJoinWXGroupNotify(GroupRet& groupRet)
{
    if (groupRet.flag == 0)
    {
        NSLog(@"加入微信群成功");
    }
    else
    {
        switch (groupRet.errorCode)
        {
            case eFlag_Error:
                // 系统错误
                NSLog(@"系统错误,请重试");
                break;
            case eFlag_WX_Group_ParameterError:
                //参数检查错误
                NSLog(@"系统错误,参数检查错误,请检查参数后重试");
                break;
            case eFlag_WX_Group_IDNotExist:
                //群ID不存在
                NSLog(@"系统错误,群ID不存在,请检查后重试");
                break;
            default:
                break;
        }
    }
}
6)特殊说明

7)名词解释

9 调用查询微信群状态接口(2.18.0及以上版本)

1)功能描述

游戏内查询指定的公会id是否已经建群或者是否已经加群。

2)接口声明
void WGQueryWXGroupStatus(unsigned char* groupId,eStatusType opType);
3)参数说明
参数名称 类型 说明
unionid unsigned char* 公会id
type eStatusType 枚举类型:ISCREATED(是否建群),ISJONINED(是否加群)
4)返回值
void MyObserver::OnQueryWXGroupStatusNotify(GroupRet& groupRet)
{
        if (groupRet.flag == 0)   //成功
        {           
            if(groupRet.platform == ePlatform_WeiXin)
            {
                WXGroupInfo wxGroupInfo = groupRet.wxGroupInfo;
                int status = wxGroupInfo.status; //0表示没有创建群或者加群,1表示已经创建群或者加群
                ...
            }
        }
        else    
        {
            if(groupRet.platform == ePlatform_WeiXin)
            {
                switch (groupRet.errorCode)
                {

                }
            }       
        }
}
5)示例代码
NSString* groupId = @"10001";
WGPlatform::GetInstance()->WGQueryWXGroupStatus((unsigned char*)[groupId UTF8String],ISCREATED);
6)特殊说明

7)名称解释

10 解绑微信群接口(2.17.0及以上版本)

1)功能描述

游戏内解绑指定的公会群。

2)接口声明
 void WGUnbindWeiXinGroup(unsigned char* groupId);
3)参数说明
参数名称 类型 说明
unionid unsigned char* 公会id
4)返回值

回调获取示例(注意:解绑微信群和解绑手q群用的是同一个回调函数,一定要先区分回调的平台是手q还是微信):

void MyObserver::OnUnbindGroupNotify(GroupRet& groupRet)
{
        if (groupRet.flag == 0)   //成功
        {           
            if(groupRet.platform == ePlatform_WeiXin)
            {               
                int errorCode = groupRet.errorCode;
                std::string desc = groupRet.desc;
                ...
            }
        }
        else    
        {   
            if(groupRet.platform == ePlatform_WeiXin)
            {   
                switch (groupRet.errorCode)
                {

                }
            }

        }
}
5)示例代码
NSString* groupId = @"10001";
WGPlatform::GetInstance()->WGUnbindWeiXinGroup((unsigned char*)[groupId UTF8String]);   
6)特殊说明

7)名称解释

常见问题

  • 如果QQ群被解散有两种方式可以取消绑定关系:
    1.会长调用解绑接口解散群关系;
    2.当工会成员调用加群接口时,此时是查询不到群ID的,则会默认进行解绑。
    如果QQ群被解散而没有进行过以上任意一种操作时,则绑定关系不会自动消失。
    3.会长转让后,新会长也可以进行解绑操作