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) 注意事项 : 在配置的时候一般只需要配置前三项即可,后面几项不用配置。