其实MSDK WIKI讲的很详细,这里就只挑重点了
名词解释
名称 | 名词概述 |
---|---|
平台 | 微信,手Q统称平台 |
openId | 用户授权后平台返回的唯一标识 |
accessToken | 用户授权票据, 获取此票据以后可以认为用户已经授权, 分享/支付等功能需要此票据. 手Q的accessToken有效时间为90天. 微信的accessToken有效时间为2小时. |
payToken | 支付票据, 此票据用于手Q支付, 手Q授权会返回此票据。微信授权不会返回此票据. 有效时间为6天。 |
offerId | 支付时使用,安卓的offerid为手Qappid |
refreshToken | 微信平台特有票据, 有效期为30天, 用于微信accessToken过期之后刷新accessToken. |
MSDKkey | MSDK前后台交互使用id,该key从MSDK 2.8.1版本开始使用,详情请点击查看 Android 2.8.1变更内容 |
异帐号 | 游戏中授权的账号和手Q/微信中授权的账号不相同, 此种场景称之为异账号. |
结构化消息 | 分享消息的一种, 此种消息分享后的展示形式为: 左边缩略图, 右上是消息标题, 右下是消息概要。 |
大图消息 | 分享消息的一种, 此种消息只包含一张图片, 显示也只有一张图片. 也叫做大图分享, 纯图分享。 |
同玩好友 | 手Q或微信好友中玩过同一个游戏的称为同玩好友 |
游戏中心 | 手Q客户端或微信客户端中的游戏中心统称游戏中心。 |
游戏大厅 | 特指 QQ游戏大厅 |
平台唤起 | 通过平台或渠道(手Q/微信/游戏大厅/应用宝等)启动游戏 |
关系链 | 用户在平台上的好友关系 |
会话 | 手Q或微信的聊天信息 |
安装渠道 | 游戏上线前打包会根据不同渠道(例如应用宝,豌豆荚,91等)生成不同渠道号的apk包, 在安装包中的渠道号称之为安装渠道. |
注册渠道 | 用户首次登陆时, 游戏的安装渠道, 会在MSDK后台记录, 算作用户注册渠道. |
Pf | 支付需要使用到的字段, 用于数据分析使用, pf的组成为: 唤起平台_账号体系-注册渠道-操作系统-安装渠道-账号体系-appid-openid.例如:desktop_m_qq-73213123-android-73213123-qq-100703379-A65A1614A2F930A0CD4C2FB2C4C5DBE1 |
pfKey | 支付使用 |
推荐登录流程
注意:
在需要使用本地票据登录时,不再需要调用WGLoginWithLocalInfo,改为调用WGLogin(EPlatform.ePlatform_None) ,然后等待onLoginNotify的结果。
正常授权都会通过OnLoginNotify回调回来,会得到一个token数组,微信和手Q的Token不同,
token会过期,手Q需要定时调用WGGetLoginRecord进行token的检查,比如25分钟调用一次,如果过期了则需要提示玩家重新授权。
微信的话建议配置自动刷新,将msdkconfig.ini中WXTOKEN_REFRESH按如下设置WXTOKEN_REFRESH=true
或者不设置(即默认是开启的)
刷新间隔默认30分钟,CHECK_TOKEN_TIME=30
这里需要注意一点,从游戏中心启动,或者从分享的结构化消息跳转到APP,需要处理异账号功能,
主要处理OnWakeupNotify回调,这里有两种情况,一种是游戏已经在运行中的,此时可以立即对OnWakeupNotify进行处理,另一种就是游戏在未启动的情况下被唤醒,此时可能游戏本身进入时需要进行资源加载之类的逻辑,所以需要对OnWakeupNotify的数据进行缓存,等到合适的时候再执行异账号的逻辑处理。
如果是游戏之前登陆的账号与平台账号一致,则此时flag会是eFlag_Succ或eFlag_AccountRefresh,此时调用WGGetLoginRecord获取本地的票据信息即可。拿到openid和token就可以登陆到GameServer了,也可以调用WGLogin(EPlatform.ePlatform_None),然后等OnLoginNotify的回调,执行正常的授权登录流程。当然如果你游戏本身已经是运行状态了,就不用重新登录了。
如果falg是eFlag_NeedSelectAccount,则需要自己弹个提示框,并让玩家选择是否切换账号,WGSwitchUser(true)是切换用户,WGSwitchUser(false)则不切换。
切换用户的话,即调用WGSwitchUser(true),然后把玩家踢到,然后调用WGLogin拉起授权,此时拉起端会使用平台的账号进行拉起授权,而不是你游戏的账号,这就是WGSwitchUser的作用。
还有什么游戏中心启动,分享唤醒传参之类的,都得通过OnWakeupNotify来处理。这里具体就不展开了,有时间再写文章絮叨,这些都接过一遍了,一般的问题都遇到过,也都解决了,不懂的兄弟放胆问哈