code2Verifyinfo
登录凭证校验。通过 wx.xxxLogin 获得临时登录凭证 (code) 后,传到开发者服务器,开发者服务器调用 code2verifyinfo 接口获取用户标识信息,可以用于构建自定义登录态。
调用方式
GET https://api.weixin.qq.com/donut/code2verifyinfo
请求参数
属性 | 类型 | 说明 |
---|---|---|
appid | string | 多端应用 ID |
appsecret | string | 多端应用密钥 |
code | string | 临时登录凭证,可通过 wx.weixinAppLogin、wx.weixinMiniProgramLogin、wx.phoneSmsLogin、wx.appleLogin、本机号码一键登录 获取 |
grant_type | string | 授权类型: authorization_code |
{
appid: 'aaa',
appsecret: 'bbb',
code: 'ccc',
grant_type: 'authorization_code'
}
返回参数
属性 | 类型 | 说明 |
---|---|---|
errcode | number | 错误码 |
errmsg | string | 错误提示 |
login_info | object | 登录信息 |
user_info | object | 用户标识信息 |
错误码 errcode
errCode | 说明 |
---|---|
-1 | system error |
10001000 | code过期 |
10001001 | code错误 |
10001002 | appid错误 |
10001003 | appsecret错误 |
10001004 | grant_type错误 |
登录信息 login_info
属性 | 类型 | 说明 |
---|---|---|
type | string | 登录方式: weixinApp, weixinMiniProgram, phoneSms, apple, phoneOneClick |
login_time | number | 登录时间 |
用户标识信息 user_info
属性 | 类型 | 说明 |
---|---|---|
user_id | string | 多端用户ID |
openapp_info | object | 微信移动应用信息 |
miniprogram_info | object | 微信小程序信息 |
phone_info | object | 手机号信息 |
apple_info | object | 苹果信息 |
微信移动应用信息 openapp_info
属性 | 类型 | 说明 |
---|---|---|
appid | string | 微信移动应用appid |
openid | string | 微信移动应用对应的openid |
unionid | string | unionid |
headimgurl | string | 用户头像,最后一个数值代表正方形头像大小(有 0、46、64、96、132 数值可选,0 代表640*640正方形头像),用户没有头像时该项为空 |
nickname | string | 普通用户昵称 |
微信小程序信息 miniprogram_info
属性 | 类型 | 说明 |
---|---|---|
appid | string | 微信小程序appid |
openid | string | 微信小程序对应的openid |
unionid | string | unionid,小程序需要绑定在微信开放平台才会返回;否则为空 |
手机号信息 phone_info
属性 | 类型 | 说明 |
---|---|---|
phone | string | 手机号 |
苹果信息 apple_info
属性 | 类型 | 说明 |
---|---|---|
bundleid | string | 苹果应用id |
apple_user_id | string | 苹果用户id |
返回示例
{
errcode: 0,
login_info: {
type: 'weixinApp',
login_time: 12345678,
appid: 'aaa',
},
user_info: {
user_id: 'xxx',
openapp_info: {
appid: 'bbb',
openid: 'ccc',
unionid: 'ddd',
headimgurl: 'HEADIMGURL',
nickname: 'NICKNAME'
},
phone_info: {
phone: '137xxxxxxx'
},
apple_info: {
bundleid: 'eee',
apple_user_id: 'fff'
},
miniprogram_info: {
appid: 'bbb',
openid: 'ccc',
unionid: 'ddd'
},
}
}
常问问题
Q:为什么我的返回信息中没有 phone_info / openapp_info?
A:code2Verifyinfo 接口根据开发者调用的登录方式和账号间的绑定关系来返回对应信息。
场景一:账号间没有绑定关系
比如,传入微信小程序登录 wx.weixinMiniProgramLogin 获取的 code,code2verifyinfo 将返回微信小程序信息 miniprogram_info,但返回信息中不包含微信移动应用信息 openapp_info,手机号信息 phone_info,苹果信息 apple_info
场景二:账号间存在绑定关系
比如,某用户的手机号和苹果账号绑定,如果传入其中一种登录方式获取的 code,code2verifyinfo 将同时返回手机号信息 phone_info 和苹果信息 apple_info
开发者可以调用 wx.miniapp.checkBindInfo 检查当前用户是否已经绑定某种账号
Q:wx.login、wx.miniapp.login 获取的 code 可以在 code2verifyinfo 使用吗?
A:wx.login、wx.miniapp.login 获取的 code 不支持在 code2verifyinfo 使用。
Q:调用 code2verifyinfo 失败,报错为 {"errcode": 43001, "errmsg": "系统失败 rid: xxx"},如何解决?
A:请使用 get 发起请求。