统一账号通用注销方案接入指引 v2.5

1. 服务简介

统一账号通用注销方案是由 IEG 公共数据平台部提供的通用游戏账号注销服务,该服务适用于腾讯游戏下精品,极光,功能等所有手游业务,用于此类业务对用户做账号级别的注销操作。

1.1 适用范围

适用于所有腾讯游戏下精品,极光,功能等手游业务,详细适用范围阅读"账号注销接入必读"进行了解

1.2 具备功能

  • 各业务账号注销前置条件声明(需要业务提供文案信息)
  • 账号注销协议声明
  • 用户实名身份校验
  • 冷静期 15 天后,进行帐号注销操作,注销为帐号级别,不区分平台、小区等
  • 用户帐号注销状态查询
  • 用户取消注销时邮件通知
  • 通知周边业务进行用户数据删除
  • 通知游戏业务已经注销的账号信息(需要各游戏业务对接 IDIP 自行实现回调服务,协议按照 MSDK 版本参考下文)

1.3 注销流程示例

整个注销流程的操作流程如下:

https://gacc.odp.qq.com/uiflow/index.html


2. 接入方式

2.1 接入账号注销 H5 页面

注意: 账号注销不需要分享,接入 H5 时,建议禁用分享功能 测试时一定使用测试号,如果使用自己的账号,务必在沉默期登录游戏,解除注销流程,防止账号被注销

2.2 页面地址

温馨提示: 测试环境的页面引入 vConsole 组件,方便用于检查传参错误等调试阶段有可能出现的问题(vConsole 默认出现在页面右下角,表现为一个绿色按钮,点击可查看网络请求,页面控制台输出的信息等等); 正式环境则没有。

2.3 请求 GET 参数

参数 必填 类型 说明
ADTAG string 固定传值为:client
msdkVersion string 根据客户端 MSDK 版本取值,可取枚举值:"V3"或者"V5",默认为 V5,例如:msdkVersion=V5
idType string 根据业务账号体系来取值,可取枚举值:"gopenid"或者"openid",默认为 gopenid,例如:idType=openid(如不清楚业务使用的账号类型,可联系 leiyzhang 确认)
msdkEncodeParam string MSDK V3 版本加密登录态,参考 2.1 中 V3 版本描述获取(msdkEncodeParam/itopencodeparam 参数根据 MSDK 版本,二选一即可)
itopencodeparam string MSDK V5 版本加密登录态,参考 2.1 中 V5 版本描述获取(msdkEncodeParam/itopencodeparam 参数根据 MSDK 版本,二选一即可)
os string 终端操作系统标示
1 - Android, 2 - iOS, 3 - Web,4 - Linux, 5 - windows, 6 - switch(nintendo) ..
gameid string V5 版本业务传 MSDK 分配的游戏 id,V3 版本以及 V3 升级 V5 版本业务,传平台侧的 appid(如手 Q 微信的 appid)
channelid int 登录渠道 id
1 - 微信(WeChat), 2 - 手 Q(mqq),3 - 游客(Guest),4 - Facebook,5 - GameCenter, 6 - GooglePlay, 7 - 自建账号体系(selfAccount),9 - Twitter, 10 - garena, 11 - email, 12 - phone, 13 - switch(nintendo), 14 - Line, 15 - Signin with Apple,17 - 快手(Kwai)
outerIp string 客户端 ip

完整请求示例:
V5版本示例
https://gacc-account-web.odp.qq.com/writeoff.html?ADTAG=client&os=1&gameid=11&channelid=1&itopencodeparam=d9b48147c3b809a2bebbd8b2e96c26f1&outerIp=127.0.0.1

V3版本示例
https://gacc-account-web.odp.qq.com/writeoff.html?ADTAG=client&os=1&gameid=wx1234567&channelid=1&msdkVersion=V3&idType=openid&msdkEncodeParam=d9b48147c3b809a2bebbd8b2e96c26f1&outerIp=127.0.0.1

2.4 H5 回调

注销操作执行后,页面会调用 msdk 的 jsapi,执行 jsCallNative 方法,建议在收到注销申请成功回调后,踢用户下线

V5 版本回调
  • 如果注销成功,回调传值为一个 json 字符串:

    '{"MsdkMethod":"jsCallNative","type":"gacc:write_off_success","value":"注销游戏账号申请提交成功"}';
    

    通过 type 等于"gacc:write_off_success"可以判断注销操作成功,此时 value 是一个固定的字符串

  • 如果注销失败,回调传值为一个 json 字符串:

    '{"MsdkMethod":"jsCallNative","type":"gacc:write_off_fail","value":"$code|$datamore_seq_id|$message"}';
    

    通过 type 等于"gacc:write_off_fail"可以判断注销操作失败,此时 value 为中包含三个信息(用|隔开),分别是:$code错误码(一个数字)、$datamore_seq_id 本次请求序列号(用于后台接口定位错误)、$message 错误信息

    关于 jsCallNative 请参考官方文档:https://docs.msdk.qq.com/v5/zh-CN/Module/WebView.html

V3 版本回调
  • 如果注销成功,回调传值为一个 json 字符串:

    '{"MsdkMethod":"WGSendMessageToNative","type":"gacc:write_off_success","value":"注销游戏账号申请提交成功"}';
    

    通过 type 等于"gacc:write_off_success"可以判断注销操作成功,此时 value 是一个固定的字符串

  • 如果注销失败,回调传值为一个 json 字符串:

    '{"MsdkMethod":"WGSendMessageToNative","type":"gacc:write_off_fail","value":"$code|$datamore_seq_id|$message"}';
    

    通过 type 等于"gacc:write_off_fail"可以判断注销操作失败,此时 value 为中包含三个信息(用|隔开),分别是:$code错误码(一个数字)、$datamore_seq_id 本次请求序列号(用于后台接口定位错误)、$message 错误信息

和 V5 区别的地方在于 MsdkMethod 的值不同,其他一样。

3. MSDK V5 版本业务需实现 IDIP 协议

此版本使用范围为使用 MSDK V5 版本,即接入了统一账号体系,且账号类型为 gopenid 的业务,如果账号类型为原始 openid 透传的业务,参考 4. MSDK V3 版本业务需实现 IDIP 协议,并使用 MSDK V3 版本的参数接入

3.1 注销回调协议

PS:接入 MSDK V5 的业务,且账号类型为 gopenid 时,当用户经过冷静期后(冷静期统一账号侧会进行判断处理),统一账号侧会在底层更换用户 gopenid,因此游戏收到此回调时,仅需清理游戏内保存的一些数据,如果 gopenid 更换后,所有用户数据均不可见,则游戏内接到本回调后可不做任何动作,比如有些游戏存在昵称搜索的功能,则需要处理一下匿名化,gopenid 更换无法阻止昵称搜索到旧账号信息;对于游戏内的“各类关系”,例如师徒,情侣,工会等,需要游戏根据产品特性,在收到此回调时自动帮用户解除

回调协议用于将已注销账号回传给游戏业务,供业务做游戏内的逻辑处理,游戏实现回调协议后,需联系 leiyzhang 进行接入,并提供所有 area,platid 参数枚举值

统一帐号侧会在用户经过冷静期,且帐号被真正注销后(注销操作统一账号会在账号底层操作),遍历所有 platid 回调该 IDIP 指令,确保回调至游戏 server,如有特殊情况联系 leiyzhang 评估

PS:务必严格按照回调协议的输入和返回提供协议

基本信息

回调协议对接 IDIP,实现回调指令

请求串: cmd=xxxx&gameid=11&area=1&platid=0&gopenid=123456&channelid=1&deltime=1582103465

参数 必填 类型 说明
cmd string 对接 IDIP 生成 cmd 指令
gameid string MSDK 分配的游戏 id
area int 服务器:1 微信,2 手 Q,3 游客,17 快手
platid int 平台:0 ios,1 安卓
gopenid string 已注销的 gopenid
channelid int 注销的渠道 id
1 - 微信(WeChat), 2 - 手 Q(mqq),3 - 游客(Guest),4 - Facebook,5 - GameCenter, 6 - GooglePlay, 7 - 自建账号体系(selfAccount),9 - Twitter, 10 - garena, 11 - email, 12 - phone, 13 - switch(nintendo), 14 - Line, 15 - Signin with Apple,,17 - 快手(Kwai)
deltime uint32 实际注销的时间,Unix 时间戳

返回串: result=0&error_info=ok

参数 必填 类型 说明
result int 响应码,0 表示成功,非 0 为失败,响应码参考 IDIP 响应码规范
error_info string 返回信息,成功返回 ok,失败返回失败信息

3.2 查询玩家最近登陆时间协议

查询玩家最近登陆时间协议用于查询玩家 gopenid 级别最近一次的登陆时间,统一账号侧每天离线调用,由游戏侧实现具体查询的 IDIP 指令,并联系 leiyzhang 进行接入

统一帐号侧会每天针对已经过了冷静期的用户,进行登录时间确认,做二次 check 校验,如有特殊情况联系 leiyzhang 评估

PS:务必严格按照查询协议的输入和返回提供指令

基本信息

查询玩家最近登陆时间协议对接 IDIP,实现查询指令

请求串: cmd=xxxx&gameid=wx123456&area=1&platid=xxx&gopenid=123456

参数 必填 类型 说明
cmd string 对接 IDIP 生成 cmd 指令
gameid string 平台侧的 appid(如手 Q 微信的 appid)
area int 服务器:1 微信,2 手 Q,3 游客,17 快手
platid int 平台:0 ios,1 安卓
gopenid string 用户的 gopenid

返回串: result=0&error_info=ok&logintime=1600137371

参数 必填 类型 说明
result int 响应码,0 表示成功,非 0 为失败,响应码参考 IDIP 响应码规范
error_info string 返回信息,成功返回 ok,失败返回失败信息
logintime uint64 玩家最近一次的登录时间,格式为 uninx 时间戳

3.3 发送邮件协议

发送邮件协议用于用户取消注销申请后,发送邮件给到用户,游戏实现发送协议后,需联系 leiyzhang 进行接入,并提供所有 area,platid 参数枚举值

统一帐号侧会在用户取消注销后,遍历所有 platid 回调该 IDIP 指令发送邮件通知用户,确保回调至游戏 server,如有特殊情况联系 leiyzhang 评估

PS:务必严格按照回调协议的输入和返回提供协议,邮件发送需要为 gopenid 级别,统一账号侧无法拿到小区信息,因此需游戏侧按照 gopenid 将邮件发送至用户所有小区,告知已取消注销

基本信息

发送邮件协议对接 IDIP,实现回调指令

请求串: cmd=xxxx&gameid=11&area=1&platid=0&gopenid=123456&channelid=1&cancel_time=1582103465&mail_title=xxx&mail_content=xxx

参数 必填 类型 说明
cmd string 对接 IDIP 生成 cmd 指令
gameid string MSDK 分配的游戏 id
area int 服务器:1 微信,2 手 Q,3 游客,17 快手
platid int 平台:0 ios,1 安卓
gopenid string 取消注销的 gopenid
channelid int gopenid 所在的渠道 id
1 - 微信(WeChat), 2 - 手 Q(mqq),3 - 游客(Guest),4 - Facebook,5 - GameCenter, 6 - GooglePlay, 7 - 自建账号体系(selfAccount),9 - Twitter, 10 - garena, 11 - email, 12 - phone, 13 - switch(nintendo), 14 - Line, 15 - Signin with Apple,,17 - 快手(Kwai)
cancel_time uint32 取消注销的时间,Unix 时间戳
mail_title string 邮件标题
mail_content string 邮件内容

返回串: result=0&error_info=ok

参数 必填 类型 说明
result int 响应码,0 表示成功,非 0 为失败,响应码参考 IDIP 响应码规范
error_info string 返回信息,成功返回 ok,失败返回失败信息

3.4 状态变更回调协议(一般无需接入此指令,需要获取用户注销状态做一些其他逻辑时,可选择接入)

状态变更回调协议用于在每次用户注销状态发生变更时,将最新的注销状态回传给业务,供业务做游戏内的一些特殊逻辑处理,游戏状态变更回调协议后,需联系 leiyzhang 进行接入,并提供所有 area,platid 参数枚举值

注销状态枚举值: 1-处于注销冷静期中, 2-已取消注销,注销流程终止, 3-冷静期结束,已正常注销

PS:务必严格按照状态变更回调协议的输入和返回提供协议

基本信息

回调协议对接 IDIP,实现回调指令

请求串: cmd=xxxx&gameid=11&area=1&platid=0&gopenid=123456&channelid=1&state=1&updatetime=1582103465

参数 必填 类型 说明
cmd string 对接 IDIP 生成 cmd 指令
gameid string MSDK 分配的游戏 id
area int 服务器:1 微信,2 手 Q,3 游客,17 快手
platid int 平台:0 ios,1 安卓
gopenid string 用户的 gopenid
channelid int 注销的渠道 id
1 - 微信(WeChat), 2 - 手 Q(mqq),3 - 游客(Guest),4 - Facebook,5 - GameCenter, 6 - GooglePlay, 7 - 自建账号体系(selfAccount),9 - Twitter, 10 - garena, 11 - email, 12 - phone, 13 - switch(nintendo), 14 - Line, 15 - Signin with Apple,,17 - 快手(Kwai)
state uint32 注销状态,1-处于注销冷静期中, 2-取消注销,注销流程终止 3-冷静期结束,已正常注销
updatetime uint32 状态变更的时间,Unix 时间戳

返回串: result=0&error_info=ok

参数 必填 类型 说明
result int 响应码,0 表示成功,非 0 为失败,响应码参考 IDIP 响应码规范
error_info string 返回信息,成功返回 ok,失败返回失败信息

4. MSDK V3 版本业务需实现 IDIP 协议

4.1 注销账号协议

注销账号协议用于在玩家经过冷静期后,需要对其账号进行注销时调用,由游戏侧实现具体的注销 IDIP 指令;对于游戏内的“各类关系”,例如师徒,情侣,工会等,需要游戏根据产品特性,在收到此回调时自动帮用户解除(实际注销动作,解除关系等,由游戏 server 端实现),并联系 leiyzhang 进行接入,同时提供所有 area,platid 参数枚举值

统一帐号侧会在用户经过冷静期后,遍历所有 platid 回调该 IDIP 指令,确保回调至游戏 server,进行账号的注销操作,如有特殊情况联系 leiyzhang 评估

PS:务必严格按照注销协议的输入和返回提供协议

基本信息

注销账号协议对接 IDIP,实现注销指令

请求串: cmd=xxxx&gameid=wx123456&area=1&platid=0&openid=123456

参数 必填 类型 说明
cmd string 对接 IDIP 生成 cmd 指令
gameid string 平台侧的 appid(如手 Q 微信的 appid)
area int 服务器:1 微信,2 手 Q,3 游客,17 快手
platid int 平台:0 ios,1 安卓
openid string 注销用户的 openid

返回串: result=0&error_info=ok PS: result=-600 表示终止注销:业务收到该回调时,由于一些原因需要终止本次注销操作,例如检测到用户账号新产生了一些不满足注销条件的情况

参数 必填 类型 说明
result int 响应码,0 表示成功,非 0 为失败,响应码参考 IDIP 响应码规范
error_info string 返回信息,成功返回 ok,失败返回失败信息

4.2 查询玩家最近登陆时间协议

查询玩家最近登陆时间协议用于查询玩家 openid 级别最近一次的登陆时间,统一账号侧每天离线调用,由游戏侧实现具体查询的 IDIP 指令,并联系 leiyzhang 进行接入

统一帐号侧会每天针对已经过了冷静期的用户,进行登录时间确认,做二次 check 校验,如有特殊情况联系 leiyzhang 评估

PS:务必严格按照查询协议的输入和返回提供指令

基本信息

查询玩家最近登陆时间协议对接 IDIP,实现查询指令

请求串: cmd=xxxx&gameid=wx123456&area=1&platid=xxx&openid=123456

参数 必填 类型 说明
cmd string 对接 IDIP 生成 cmd 指令
gameid string 平台侧的 appid(如手 Q 微信的 appid)
area int 服务器:1 微信,2 手 Q,3 游客,17 快手
platid int 平台:0 ios,1 安卓
openid string 用户的 openid

返回串: result=0&error_info=ok&logintime=1600137371

参数 必填 类型 说明
result int 响应码,0 表示成功,非 0 为失败,响应码参考 IDIP 响应码规范
error_info string 返回信息,成功返回 ok,失败返回失败信息
logintime uint64 玩家最近一次的登录时间,格式为 uninx 时间戳

4.3 发送邮件协议

发送邮件协议用于用户取消注销申请后,发送邮件给到用户,游戏实现发送协议后,需联系 leiyzhang 进行接入,并提供所有 area,platid 参数枚举值

统一帐号侧会在用户取消注销后,遍历所有 platid 回调该 IDIP 指令发送邮件通知用户,确保回调至游戏 server,如有特殊情况联系 leiyzhang 评估

PS:务必严格按照回调协议的输入和返回提供协议,邮件发送需要为 openid 级别,统一账号侧无法拿到小区信息,因此需游戏侧按照 openid 将邮件发送至用户所有小区,告知已取消注销

基本信息

发送邮件协议对接 IDIP,实现回调指令

请求串: cmd=xxxx&gameid=11&area=1&platid=0&openid=123456&cancel_time=1582103465&mail_title=xxx&mail_content=xxx

参数 必填 类型 说明
cmd string 对接 IDIP 生成 cmd 指令
gameid string 平台侧的 appid(如手 Q 微信的 appid)
area int 服务器:1 微信,2 手 Q,3 游客,17 快手
platid int 平台:0 ios,1 安卓
openid string 取消注销的 openid
cancel_time uint32 取消注销的时间,Unix 时间戳
mail_title string 邮件标题
mail_content string 邮件内容

返回串: result=0&error_info=ok

参数 必填 类型 说明
result int 响应码,0 表示成功,非 0 为失败,响应码参考 IDIP 响应码规范
error_info string 返回信息,成功返回 ok,失败返回失败信息

4.4 状态变更回调协议(一般无需接入此指令,需要获取用户注销状态做一些其他逻辑时,可选择接入)

状态变更回调协议用于在每次用户注销状态发生变更时,将最新的注销状态回传给业务,供业务做游戏内的一些特殊逻辑处理,游戏状态变更回调协议后,需联系 leiyzhang 进行接入,并提供所有 area,platid 参数枚举值

注销状态枚举值: 1-处于注销冷静期中, 2-已取消注销,注销流程终止, 3-冷静期结束,已正常注销

PS:务必严格按照状态变更回调协议的输入和返回提供协议

基本信息

回调协议对接 IDIP,实现回调指令

请求串: cmd=xxxx&gameid=11&area=1&platid=0&openid=123456&channelid=1&state=1&updatetime=1582103465

参数 必填 类型 说明
cmd string 对接 IDIP 生成 cmd 指令
gameid string 平台侧的 appid(如手 Q 微信的 appid)
area int 服务器:1 微信,2 手 Q,3 游客,17 快手
platid int 平台:0 ios,1 安卓
openid string 用户的 openid
state uint32 注销状态,1-处于注销冷静期中, 2-取消注销,注销流程终止 3-冷静期结束,已正常注销
updatetime uint32 状态变更的时间,Unix 时间戳

返回串: result=0&error_info=ok

参数 必填 类型 说明
result int 响应码,0 表示成功,非 0 为失败,响应码参考 IDIP 响应码规范
error_info string 返回信息,成功返回 ok,失败返回失败信息

results matching ""

    No results matching ""