MSDK 异账号梳理

何为异账号

异账号是指:当前游戏内登录的账号和平台登录的账号不一致。有以下两种情况:

1) 平台一样,账号不同(例如游戏和手Q登录了不同的QQ号)

2) 平台不同(例如游戏用微信登录,游戏相关的操作是要到手Q)

异账号的场景

1) 游戏分享消息的时候拉起平台,因为账号不一致,平台会弹框提示异账号,目前平台都已经支持该功能。

2) 用户从平台拉起进入游戏,因为账号不一致,需要游戏弹框提示异账号

目前游戏上线时平台要求游戏处理的异账号、MSDK实现的异账号都为第二种。

异账号处理逻辑(开发关注)

MSDK的异账号处理逻辑包括异账号判断,用户选择账号,异账号登录三个步骤。详见登录模块异账号处理部分

触发异账号说明

从微信拉起游戏

从微信拉起游戏时,只携带 openid 而没有其它票据。即可以判断异账号,但用拉起的账号无法登录成功,如果要用拉起的账号登录需要重新点登录授权。

从手Q拉起游戏

从手Q拉起游戏时,由不同的地方拉起会有不同的表现。

如图,在结构化消息分享中,点击红框中的消息体会先跳到游戏中心然后自动拉起游戏,此时只要配置了快速登录就可以携带登录票据拉起游戏。如果是点击图中分享的消息体下方的小尾巴拉起游戏,此时是不带任何票据的,即没有异账号,更无法用拉起账号登录。 这两种情况可以这样区分,点击后如果先跳转到游戏中心再拉起游戏,此时是带有全部票据可用拉起账号登录(配置了快速登录),具有触发异账号能力;点击后如果直接拉起游戏,此时是不带票据的,无法用拉起账号登录,没有触发异账号能力。

平台到游戏异账号的九种情况

开发无需关心,只需要关心MSDK给游戏回调中的flag。

拉起带完整票据 拉起不带完整票据 拉起无票据
本地票据有效 提示用户异账号 提示用户异账号 通过本地账号登陆
本地票据无效 提示用户异账号 提示用户异账号 游戏回到登录页
本地无票据 通过拉起账号登陆 游戏回到登录页 游戏回到登录页

异账号版本支持

游戏到平台异账号:

1) 游戏到微信的异账号只在微信5.0及以上版本才支持。

平台到游戏异账号:

1) MSDK从1.8.0开始支持异账号,目前只有手Q可以完成带票据拉起。

2) 手Q4.6以下版本, 手Q到游戏的异账号在游戏已经启动的情况下没有。

手Q快速登录

手Q快速登录需要在手Q游戏中心配置携带登录态拉起游戏。具体如下:

手Q通过游戏中心点击启动的时候可以直接快速登录游戏,但是通过游戏中心详情页进入的时候取决于游戏的配置,具体配制方法由游戏的运营协同规划PM提交需求给手Q游戏中心,由游戏中心的负责人完成配置。配置如下:

1) 支持openID :勾选openID一项,如下图

2) 支持带openID、accessToken、PayToken

1. 勾选对应的选项
2. 填写游戏支持异账号的版本对应的versionCode。填写以后此code及以上的版本可以带票据拉起游戏,之前版本只会带openID拉起游戏,不会影响游戏的正常逻辑。

`

3) 注意事项 : 在配置的时候一般只需要配置前三项即可,后面几项不用配置。

常见问题