12/25/2024 11:11:53

解决方案

业务在开发阶段,需要在 Editor 环境上登录,进行联调。MSDK 目前提供模拟登录方案,以供业务在 Editor 环境联调。 目前 MSDK 提供了 UE 的模拟登录方案,实现原理是一样的。
模拟登录替换了 token,采用万能 token,该方案只能在测试环境中使用。
新接入业务如果需要使用该功能,请在企业微信上联系 MSDK助手。
目前支持模拟登录的渠道有:WeChat、QQ、Facebook、GameCenter、Google、Twitter、Garena、Line。

正式环境的模拟登录 在正式环境模拟登录,需要使用真实的 openid 和 token 才可以通过校验。

一、UE 模拟登录

模拟 PC 登录以下几步操作(以微信为例):

  1. 新增一个 UE 测试插件 (注:此插件仅用于开发阶段调测用途),用于存放模拟登录态。

    例如此处新建了一个 MSDKCore 命名的 UE 插件: 图片描述 其中,MSDKCore UE 插件的 Content 目录用于存放模拟登录态。

  2. 修改 MSDKPIXCore UE 插件的 MSDKPIXCore\Source\MSDKPIXCore\Private\MSDKLogin.cpp 文件,指定模拟登录态文件所在位置(即第一步中模拟登录态所在目录的相对路径):

    // 原路径
    std::string relativePath("TestPlugins/MSDKCore/Content/");
    

业务如果选择不使用该 UE 测试插件,需要确保模拟登陆前, Saved\StagedBuilds\WindowsNoEditor\XXX(项目名称)\Plugins\XXX(上述相对路径) 路径下有对应 XXXLoginData.txt

  1. 操作方式: 图片描述 模拟登陆后,终端会有日志输出: 图片描述

二、登录态获取方法

2.1 Android 登录日志的获取

Android 手机上安装游戏 App 后 ,在 Logcat 中通过 Tag: MSDK 过滤日志。登录后在结果中搜索 OnLoginResp ,在日志中复制登录结果即可。

图片描述

2.2 iOS 登录日志的获取

iPhone / iPad 上安装游戏 App 后 ,打开 MAC 的控制台并选择测试机。登录后在结果中搜索 handleCallback ,在日志中复制登录结果即可。

图片描述

可以直接拷贝登录态示例中的代码,填写到对应渠道的 LoginData.txt 文件中。随意更改 openid 即可。 如果需要在 pc 中测试购买,需要从真机中拿去真正的 openid 和 pfKey 等相关字段。

三、登录态示例

1、 WeChat 的登录态示例,WeChatLoginData.txt 的内容

{
  "extraJson": "",
  "methodNameID": 112,
  "retCode": 0,
  "retMsg": "Success",
  "thirdCode": 0,
  "thirdMsg": "success",
  "channel": "WeChat",
  "channelid": 1,
  "channel_info": "{\"code\":\"071H5ihk0HTfoq1W6Pek0MYuhk0H5ihH\",\"access_token\":\"16_l4kRVRLBvAUfUyWXz6evSZwwXvNcrTj-XdIVC4ryc5koTQeymyvsELbyZ8zH0SU-6EheFuY78jNF7zaymzF_uObPf9d92U3JK9fddJXUnRI\",\"expired\":7200,\"refresh_token\":\"16_caPx3PRfwkP8NOGL89Q4H4h_k-eEBNSLKIekJsC82tW3iCMUZNfkVKNcVaZyLZKzQEU-hCACRJpBua422UEAB9_UjwY2SQqu_9663IdR25E\",\"scope\":\"snsapi_userinfo,snsapi_friend,snsapi_message\",\"funcs\":\"\",\"other_funcs\":\"\",\"extend\":\"\"}",
  "uid": "oHlap1QDpmRiwliuWdvMH3mAWnQM",
  "first": 0,
  "gender": 0,
  "health_game_ext": "{\"serial_number\":\"oHlap1QDpmRiwliuWdvMH3mAWnQM-1543845913-ahnZ\",\"prajna_ext\":\"{ \"type\": 0, \"webview_frame\": { \"buttons\": [  ], \"show_title\": 0, \"show_titlebar\": 0, \"url\": \"\" } }\",\"username\":\"\"}",
  "openid": "3042973086530817307",
  "pf": "wechat_wx-App Store-android-App Store-wx-xxxxx-oHlap1QDpmRiwliuWdvMH3mAWnQM",
  "pfKey": "74ffe118eb96e85e87957566796fcc40",
  "picture_url": "",
  "need_name_auth": false,
  "reg_channel_dis": "",
  "seqID": "11-afd9d432-0527-4429-a905-5e9742399f30-1543845916-14",
  "token": "MSDKLOGINMOCKER_51433213c2e72a6304fb805b10a2201d",
  "token_expire_time": 1543853113,
  "user_name": "rdgztest_INWRBE"
}
Copy

2、 QQ 的登录态示例,QQLoginData.txt 的内容

{
  "ret": 0,
  "msg": "success",
  "openid": "3042973086530817307",
  "token_expire_time": 1541658617,
  "first": 0,
  "reg_channel_dis": "",
  "user_name": "kysduolc",
  "picture_url": "http://qzapp.qlogo.cn/qzapp/ 1106977030/FA1981312F1A9ABA31CC5EC5E62690B9/100",
  "need_name_auth": false,
  "channel_info": "{\"pay_token\":\"493C9D67E5F3C653253F9CA8D8043498\",\"access_token\":\"0 3FE61DCBC55C86C18B9455D5D91AA89\",\"openid\":\"FA1981312F1A9ABA31CC5EC5E62690B9\",\"expired\":0,\"refresh_ token\":\"\",\"scope\":\"\",\"funcs\":\"\",\"other_funcs\":\"\",\"extend\":\"\"}",
  "extra": "",
  "retCode": 0,
  "retMsg": "Success",
  "token": "A23EsnNaIT@7ISkex5JOg3Tl@LMFlDS3SvzqsEp14wiuK087owIv4vgu BV6MVGU5",
  "gender": 0,
  "pf": "qq_qq-00000000-android-00000000-qq-110 6977030-FA1981312F1A9ABA31CC5EC5E62690B9",
  "pfKey": "",
  "channel": "QQ",
  "channelID": 2,
  "methodNameID": 112
}
Copy

3、 Facebook 的登录态示例,FacebookLoginData.txt 的内容

{
    "ret": 0,
    "msg": "success",
    "openid": "8530819274717341879",
    "token_expire_time": 1592992929,
    "first": 0,
    "reg_channel_dis": "App Store",
    "user_name": "Waylen Zhang",
    "picture_url": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=1133609683487391&height=50&width=50&ext=1592992929&hash=AeQ2ZeBsG7Bj8-Gk",
    "need_name_auth": false,
    "channel_info": "{\"access_token\":\"EAAFRgC9tvzIBAOwccnO5J2m5tqZAbLxRaHvdK2B69L0wyMAcYmZAlmEV3SNVAPHPEDvEVip9FvF8SlbApb2E2gB51yjb3ocAAE7YGnYq8Ddi2SAWbnA1qGT1BZC2YZCIOnQZBkAoZAZCE5N55vXBGSjJxMtQJ5jVUbMYZAaTbRQNn5bKImpD61q0fn6qhqf7krbUJgzwz4uMeWhd4qZB2REm6wFDGalDFZCCCBcBuKGd1KVgZDZD\",\"expire_ts\":1592992929}",
    "bind_list": "",
    "confirm_code": "",
    "confirm_code_expire_time": 0,
    "channelid": 4,
    "retCode": 0,
    "retMsg": "Success",
    "token": "98f65d31821a070d0db4847ac7062fbc542a498a",
    "gender": 0,
    "pf": "facebook_fb-App Store-iap-App Store-fb-380401719179584-8530819274717341879",
    "pfKey": "9bdf639cf67f40351af244caf493513b",
    "channel": "Facebook",
    "methodNameID": 112,
    "extraJson": ""
}
Copy

4、Logout 可以在 Logout.txt 中添加以下内容,在 editor 模式下获取 Logout 成功的返回值

{"ret":1,"msg":"","methodNameID":117,"retCode":0,"retMsg":"Success","extraJson":""}
Copy



Copyright © 2024 MSDK.
All rights reserved.

results matching ""

    No results matching ""