# 平台登录能力接入

# 背景

平台登录能力主要是为了解决在某些游戏中,微信用户与平台账号之间的绑定关系问题。这一功能尤其针对那些希望将微信用户与他们的平台账号相关联的场景,从而提供更流畅的用户体验和数据共享。

# 平台绑定游戏账号与平台登录能力方案的区别:

  1. 活动入口区别
  • 在平台绑定游戏账号方案中,活动入口通常位于合作平台侧。这意味着用户需要在直播平台等合作平台上参加相关活动。
  • 相比之下,平台登录能力接入方案的活动入口则位于游戏官网或游戏内嵌的H5页面中。这为用户在游戏环境中直接参与活动提供了便利。
  1. 账号绑定方式区别
  • 在平台绑定游戏账号方案中,用户需要在平台上拉起小程序,并在小程序内完成平台账号与游戏账号的绑定。这种绑定方式被称为“正绑”,并且实现这一功能的载体是腾讯游戏来联小程序。
  • 平台登录能力的流程则有所不同。用户在游戏内通过手机号码登录平台账号,并与当前登录的游戏角色完成账号绑定。这种方式被称为“反绑”。

新增功能:

提供此项能力后,用户现在可以在小程序3.0中主动绑定平台,以便进行后续的账号绑定操作。这一新增功能为用户提供了更多的选择和灵活性,使他们能够根据自己的需求在不同的平台和游戏之间建立连接。

# 2. 场景介绍

image-plat-bind-bg1 图片从左往右,分别为:图1,图2,图3,图4,图5

# 图1

  • 入口在合作平台虎牙官网内,故页面需虎牙承接开发。
  • 合作游戏为金铲铲之战 (opens new window),更多游戏绑定支持情况可与腾讯游戏来联运营经理确认。
  • 由于小程序无法同时提供微信/手Q的平台账号与游戏角色绑定。平台提供"绑定账号"对话框。
  • 如果选择"绑定QQ账号",则拉起微信小程序。见平台绑定游戏账号
  • 如果选择"绑定微信账号",则需要用户分享连接到微信内,此时页面会展示二维码,用户通过微信内扫描二维码通过指引完成绑定。见图2

# 图2

  • 如果在图1中选择了"绑定微信账号",则需要分享连接到微信内,通过微信内H5打开。
  • 图2中当前已打开了分享至微信内H5页面。

# 图3

  • 紧接图2操作,用户在微信内扫描二维码打开了反绑页面,通过反绑方案解决平台账号与游戏账号的绑定。
  • 此时需要用户输入对应平台的手机号完成平台账号的登录。

# 图4

  • 用户通过游戏角色选择框选择当前需要绑定的游戏角色。
  • 不同游戏的大区体系不一样,图中只展示当前游戏"金铲铲之战"的大区结构。

# 图5

  • 用户在图4中已完成角色选择,此时弹出UI为用户展示即将绑定的平台账号与游戏角色信息。
  • 点击"确认绑定",完成平台账号与游戏角色信息的绑定。

# 合作平台接入步骤

当用户选择手机号绑定方式时,为确保用户身份的真实性,系统需向用户提供的手机号发送验证短信,以便腾讯游戏来联请求发送验证短信。

  1. 发送短信验证码接口:接收包含用户手机号码的请求数据。
  2. 验证码校验接口:如果验证码正确,从平台查询并返回与该手机号码相关联的详细用户信息,如用户名、用户头像URL、平台账号唯一标识等。
  3. 读取用户信息接口:读取平台数据信息,并返回给腾讯游戏来联。

# 通用参数说明

通用参数统一放在querystring。在腾讯游戏来联调用平台接口时默认携带以下通用参数。

字段名称 字段类型 字段是否必填 字段说明
appId string 平台向腾讯游戏来联申请的唯一英文标识
t int 当前UNIX时间戳(秒)
nonce string 随机字符串,建议为8位包含大小写字母和数字的组合
sign string 请求签名信息。将querystring中所有参数按键名称部分使用ASCII排序,将所有的值中间用"+"拼接起来,最后用"+"拼接腾讯游戏来联分配的签名密钥,得到的数据md5后转小写字母
例如:appId=livelink&t=1652098836&nonce=11223344
步骤一:str = "livelink+11223344+1652098836"
步骤二:str += “+xxxxxxx“ (xxxxxx为livelink分配签名密钥
步骤三:sign = strtolower(md5(str))

# 1.发送短信验证码接口

# 使用说明

此接口用于向用户手机发送验证码,以便进行后续的身份验证,图1所示。

# 推荐路由

/tencent/livelink/user/sendPhoneCode
1

# 方法

POST(application/json)

# 请求参数

{
  "phone": "13511112222", // 手机号,必填  
  "userIp": "192.168.1.1", // 用户IP,必填  
  "actId": 1, // 活动ID,非必填  
  "game": "yxzj" // 腾讯游戏编码,非必填  
}

1
2
3
4
5
6
7

# 返回参数

{
    "code": 0, 
    "msg": "",
    "tid": "xxxxxxxxxxxxxxx"
}
1
2
3
4
5
字段名称 字段类型 字段是否必填 字段说明
code int 状态码,0表示成功,非0表示错误
msg string 错误信息,当code非0时提供
tid string 平台错误追踪ID,用于错误排查

# 2.验证码校验接口

# 使用说明

用户输入验证码后,此接口将同时完成验证码的校验和用户信息的获取,简化了交互流程。交互如图2所示。

# 推荐路由

  /tencent/livelink/user/getUserByPhoneCode
1

# 方法

POST(application/json)

# 请求参数

{
   "phone": "13511112222", // 手机号,必填
   "code": "123456", // 验证码,必填
   "userIp": "192.168.1.1" // 用户IP,必填
}
1
2
3
4
5

# 返回

若验证码正确,则返回与该手机号相关联的用户信息。

{
   "code": 0,
   "msg": "",
   "tid": "xxxxxxxxxxxxxxx",
   "data": {
      "userId": "xxxxxx", // 必传
      "nickName": "昵称", // 非必传
      "avatar": "http://123.com/1.jpg" // 非必传
   }
}

1
2
3
4
5
6
7
8
9
10
11

# 3. 获取用户信息接口

# 使用说明

如图5,腾讯游戏来联传给平台userId,获取平台用户信息。用于展示绑定后的用户账号信息。

# 路由

/tencent/livelink/user/getUserById
1

# 方法

POST(application/json)

# 请求参数

{
  "userId": "xxxxxx" // 用户id,必填
}
1
2
3

# 返回参数

{
  "code": 0,
  "msg": "",
  "tid": "xxxxxxxxxxxxxxx",
  "data": {
    "userId": "xxxxxx", // 必传
    "nickName": "昵称", // 非必传
    "avatar": "http://123.com/1.jpg" // 非必传
  }
}
1
2
3
4
5
6
7
8
9
10
lastUpdate: 8/12/2024, 4:29:42 PM