# “人民网+”账号体系

# 1.用户登录,获取用户OpenID

# 1.1 wx.login(Object object)

功能描述

调用接口获取登录凭证(code),通过凭证进而换取用户登录态信息,包括用户在当前小程序在“人民网+”客户端的唯一标识(openid)、“人民网+”客户端开发平台帐号下的唯一标识(unionid)等, 入驻“人民网+”客户端平台的小程序,发出的请求User-Agent会携带特殊的标识(MiniProgram),小程序服务端可以凭此判断,请求是来自“人民网+”客户端平台还是微信平台。

平台 User-Agent
安卓 PeoplePlus_Android/2.2.0-Beta (MiniProgram; FinApplet/2.39.5)
ios MiniProgram; FinApplet/2.39.5

返回参数

属性 类型 说明 参数举例
code string 用户登录凭证(有效期五分钟)。开发者需要在开发者服务器后台调用 code2Session,使用 code 换取 openid、unionid 等信息

{
  "code": "OeKTafTrjm2IpHwT62ZH3KG1PvT0C0Gg65hSv8j-JVYGfyz6ybz9UCSCg_J_JtXmS2bV88y_Lvp121d5VmyPO8ocRVBMx7EmzHXCYnnm8wQ5m6AgGaStRAcgpMZA2pJA",
  "source": "peoplePlus",
  "errMsg": "login:ok"
}


# 1.2 小程序登录

# 接口说明

接口英文名

code2Session

功能描述

登录凭证校验。通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。更多使用方法详见小程序登录。

# 调用方式

HTTPS 调用


GET /sns/jscode2session 

请求参数

属性 类型 必填 说明
appid string 是 小程序 appId
secret string 是 小程序 appSecret
js_code string 是 登录时获取的 code,可通过wx.login获取
grant_type string 是 授权类型,此处固定值 authorization_code

返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误信息
openid string openid
unionid string unionid

# 调用示例

示例说明: HTTPS请求

请求数据示例


GET /jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 

返回数据示例

{
  "openid": "xxxxxx",
  "session_key": "",
  "unionid": "xxxxx",
  "errcode": 0,
  "errmsg": "xxxxx"
}

# 2.获取用户手机号

# 2.1 获取接口调用凭据

介绍

为外部服务(h5、小程序)提供的调用人民网服务能力,在调用“人民网+”客户端提供的能力接口前,需要首先获取access_token,该token是调用“人民网+”客户端能力的一切前提。

获取access_token流程

1.联系人民网移动产品部申请一套appid与secret。

2.使用步骤1申请下来的appid与secret调用获取token接口。

获取access_token接口地址


[GET]https://uc-app.people.cn/cgi-bin/token?appid={appid}&secret={secret}&grant_type=authorization_code

接口返回内容


{
  "errcode": 0,
  "errmsg": "success",
  "access_token": "31316ae0-532a-4ad1-9815-8255696edfee",
  "expires_in": 7200
}


返回参数说明

errcode: 返回状态码,0为正确返回,其余为异常状态码
errmsg: 返回的状态码对应的信息
access_token: 状态码为0时,access_token会返回token,异常状态码此属性为空
expires_in: 有效时长(秒)

token补充说明

  • token有效期为7200s
  • token接口每天调用次数为2000,建议各方做缓存,防止调用次数超出上限

# 2.2 获取手机号_客户端

获取手机号

button 组件的点击来触发,不再需要提前调用wx.login进行登录。

接口应在服务器端调用,详细说明参见获取手机号_后端

使用方法

需要将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到动态令牌code,然后把code传到开发者后台,并在开发者后台调用微信后台提供的获取手机号_后端,消费code来换取用户手机号。每个code有效期为5分钟,且只能消费一次。

注:getPhoneNumber 返回的 code 与 wx.login 返回的 code 作用是不一样的,不能混用。

入驻“人民网+”客户端平台的小程序,发出的请求User-Agent会携带特殊的标识(MiniProgram),小程序服务端可以凭此判断,请求是来自“人民网+”客户端平台还是微信平台。

平台 User-Agent
安卓 PeoplePlus_Android/2.2.0-Beta (MiniProgram; FinApplet/2.39.5)
ios MiniProgram; FinApplet/2.39.5

# 代码示例

返回参数说明

属性 类型 说明 参数举例
code string 动态令牌。可通过动态令牌换取用户手机号。使用方法详情获取手机号_后端

# 2.3 获取手机号_后端

# 接口说明

接口英文名

getPhoneNumber

功能描述

该接口用于将 code 换取用户手机号。 说明,每个 code 只能使用一次,code的有效期为5min。

# 调用方式

HTTPS 调用


GET /wxa/business/getuserphonenumber?access_token={access_token}&code={code}

请求参数

属性 类型 必填 说明
access_token string 是 小程序后端调用“人民网+”客户端后端获得的access_token
code string 是 登录时获取的 code,可通过getPhoneNumber按钮获取

返回参数

属性 类型 说明
errcode int 错误码
errmsg string 错误信息
phone_info.phone string 手机号码

# 调用示例

示例说明: HTTPS请求

请求数据示例


/wxa/business/getuserphonenumber?access_token=5a141935-83ed-46de-a8a2-3f0d72b11449&code=kfFMUdeRY-MhOzkrgGcM1x4R6MinSpZg8Rybu4MBt4vwDo1DZXCUYqiBxo_Ad7naZ5jL4Mnfczd7WgBo_ZW0u8DsUvLTFJdKXGq3soV_Vx7W_rX_NYAYQ1-J86uYUXMj

返回数据示例


{
  "errcode":0,
  "errmsg":"ok",
  "phone_info": {
    "phone":"156",
  }
}