登录
login
该 API 使用方法为 wx.login(Object object)
功能说明:IDE 目前暂不支持,该 API 需要和宿主客户端联调,在真机上返回的内容是由宿主客户端提供,宿主的返回值可以遵循微信标准,也可以自定义返回内容。
额外说明:在 IDE 中可以使用 mock 面板进行返回值的 mock。
参数及说明:Object object。
属性 | 类型 | 默认值 | 必填 | 说明 |
success | function | - | 否 | 接口调用成功的回调函数 |
fail | function | - | 否 | 接口调用失败的回调函数 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码:
wx.login({success(res) {console.log(res ,"---------------info, host app return");}})
checkSession
该 API 使用方法为 wx.checkSession(Object object)
功能说明:IDE 目前暂不支持,该 API 需要和宿主客户端联调,在真机上返回的内容是由宿主客户端提供,宿主的返回值可以遵循微信标准,也可以自定义返回内容。
额外说明:在 IDE 中可以使用 mock 面板进行返回值的 mock。
检查登录态是否过期。通过 wx.login 接口获得的用户登录态拥有一定的时效性。用户越久未使用小程序,用户登录态越有可能失效。反之如果用户一直在使用小程序,则用户登录态一直保持有效。具体时效逻辑由官方维护,对开发者透明。开发者只需要调用 wx.checkSession 接口检测当前用户登录态是否有效。
登录态过期后开发者可以再调用 wx.login 获取新的用户登录态。调用成功说明当前 session_key 未过期,调用失败说明 session_key 已过期。
参数及说明:Object object。
属性 | 类型 | 默认值 | 必填 | 说明 |
success | function | - | 否 | 接口调用成功的回调函数 |
fail | function | - | 否 | 接口调用失败的回调函数 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
wx.checkSession({success () {//session_key 未过期,并且在本生命周期一直有效},fail () {// session_key 已经失效,需要重新执行登录流程wx.login() //重新登录}})
账号信息
getAccountInfoSync
该 API 使用方法为 Object wx.getAccountInfoSync()
功能说明:获取当前账号信息。线上小程序版本号仅支持在正式版小程序中获取,开发版和体验版中无法获取。
返回值:Object,账号信息。
属性 | 类型 | 说明 |
miniProgram | Object | 小程序账号信息 |
plugin | Object | 插件账号信息(仅在插件中调用时包含这一项) |
miniProgram 结构属性
结构属性 | 类型 | 说明 |
appId | string | 小程序 appId |
envVersion | string | 小程序版本,合法值为: develop:开发版 trial:体验版 release:正式版 |
version | string | 线上小程序版本号 |
plugin 结构属性
结构属性 | 类型 | 说明 |
appId | string | 插件 appId |
version | string | 插件版本号 |
用户信息
getUserProfile
该 API 使用方法为 wx.getUserProfile(Object object)
功能说明:IDE 目前暂不支持,该 API 需要和宿主客户端联调,在真机上返回的内容是由宿主客户端提供,宿主的返回值可以遵循微信标准,也可以自定义返回内容。
额外说明:在 IDE 中可以使用 mock 面板进行返回值的 mock。
获取用户信息。页面产生单击事件(例如 button 上 bindtap 的回调中)后才可调用,每次请求都会弹出授权窗口,用户同意后返回 userInfo。该接口用于替换 wx.getUserInfo,详见 用户信息接口调整说明。
返回值:Object object。
属性 | 类型 | 默认值 | 必填 | 说明 |
lang | string | en | 否 | 显示用户信息的语言,合法值为: en:英文 zh_CN:简体中文 zh_TW:繁体中文 |
desc | string | - | 是 | 声明获取用户个人信息后的用途,不超过30个字符 |
success | function | - | 否 | 接口调用成功的回调函数 |
fail | function | - | 否 | 接口调用失败的回调函数 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
getUserInfo
该 API 使用方法为 wx.getUserInfo(Object object)
功能说明:IDE 目前暂不支持,该 API 需要和宿主客户端联调,在真机上返回的内容是由宿主客户端提供,宿主的返回值可以遵循微信标准,也可以自定义返回内容。
额外说明:在 IDE 中可以使用 mock 面板进行返回值的 mock。
获取用户信息,在使用过程中需要用户授权 scope.userInfo。
参数及说明:Object object。
属性 | 类型 | 默认值 | 必填 | 说明 |
withCredentials | boolean | | 否 | 是否带上登录态信息。当 withCredentials 为 true 时,要求此前有调用过 wx.login 且登录态尚未过期,此时返回的数据会包含 encryptedData,iv 等敏感信息;当 withCredentials 为 false 时,不要求有登录态,返回的数据不包含 encryptedData,iv 等敏感信息 |
lang | string | en | 否 | 显示用户信息的语言,合法值为: en:英文 zh_CN:简体中文 zh_TW:繁体中文 |
success | function | - | 否 | 接口调用成功的回调函数 |
fail | function | - | 否 | 接口调用失败的回调函数 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数参数:Object res
属性 | 类型 | 说明 |
userInfo | UserInfo | 用户信息对象,不包含 openid 等敏感信息 |
rawData | string | 不包括敏感信息的原始数据字符串,用于计算签名 |
signature | string | 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息 |
encryptedData | string | 包括敏感数据在内的完整用户信息的加密数据 |
iv | string | 加密算法的初始向量 |
cloudID | string | 敏感数据对应的云 ID,开通云开发的小程序才会返回,可通过云调用直接获取开放数据,详细见云调用直接获取开放数据 |
示例代码
// 必须是在用户已经授权的情况下调用wx.getUserInfo({success: function(res) {var userInfo = res.userInfovar nickName = userInfo.nickNamevar avatarUrl = userInfo.avatarUrlvar gender = userInfo.gender //性别 0:未知、1:男、2:女var province = userInfo.provincevar city = userInfo.cityvar country = userInfo.country}})
敏感数据有两种获取方式:
1. 使用加密数据解密算法。
2. 使用云调用直接获取开放数据,获取得到的开放数据为以下 json 结构:
{"openId": "OPENID","nickName": "NICKNAME","gender": GENDER,"city": "CITY","province": "PROVINCE","country": "COUNTRY","avatarUrl": "AVATARURL","unionId": "UNIONID","watermark": {"appid":"APPID","timestamp":TIMESTAMP}}
小程序用户信息组件示例代码
<!-- 如果只是展示用户头像昵称,可以使用 <open-data /> 组件 --><open-data type="userAvatarUrl"></open-data><open-data type="userNickName"></open-data><!-- 需要使用 button 来授权登录 --><button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授权登录</button><view wx:else>请升级宿主客户端版本</view>
Page({data: {canIUse: wx.canIUse('button.open-type.getUserInfo')},onLoad: function() {// 查看是否授权wx.getSetting({success (res){if (res.authSetting['scope.userInfo']) {// 已经授权,可以直接调用 getUserInfo 获取头像昵称wx.getUserInfo({success: function(res) {console.log(res.userInfo)}})}}})},bindGetUserInfo (e) {console.log(e.detail.userInfo)}})
userInfo
功能说明:用户信息。
参数及说明:
属性 | 类型 | 说明 |
nickName | string | 用户昵称 |
avatarUrl | string | 用户头像图片的 URL。URL 最后一个数值代表正方形头像大小(有 0、46、64、96、132 数值可选,0 代表 640x640 的正方形头像,46 表示 46x46 的正方形头像,剩余数值以此类推。默认132),用户没有头像时该项为空。若用户更换头像,原有头像 URL 将失效 |
gender | number | 用户性别。不再返回,合法值为: 0:未知 1:男性 2:女性 |
country | string | 用户所在国家。不再返回 |
province | string | 用户所在省份。不再返回 |
city | string | 用户所在城市。不再返回 |
language | string | 显示 country,province,city 所用的语言。强制返回 “zh_CN”,合法值为: en:英文 zh_CN:简体中文 zh_TW:繁体中文 |
设置
AuthSetting
功能说明:用户授权设置信息。
参数及说明:
属性 | 说明 |
boolean scope.userLocation | 是否授权地理位置,对应接口 wx.getLocation
是否授权地理位置,对应接口 wx.chooseLocation |
boolean scope.writePhotosAlbum | 是否授权保存到相册 wx.saveImageToPhotosAlbum |
boolean scope.camera | 是否授权摄像头,对应 <camera /> 组件 |
boolean scope.addFriend |
getSetting
该 API 使用方法为 wx.getSetting(Object object)
功能说明:获取用户的当前设置。
参数及说明:Object object。
属性 | 类型 | 默认值 | 必填 | 说明 |
withSubscriptions | Boolean | false | 否 | 是否同时获取用户订阅消息的订阅状态,默认不获取 |
success | function | - | 否 | 接口调用成功的回调函数 |
fail | function | - | 否 | 接口调用失败的回调函数 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
注意:
withSubscriptions 只返回用户勾选过订阅面板中的“总是保持以上选择,不再询问”的订阅消息。
object.success 回调函数参数:Object res。
属性 | 类型 | 说明 |
authSetting | 用户授权结果 |
示例代码:
wx.getSetting({success(res) {console.log(res.authSetting)// res.authSetting = {// "scope.userInfo": true,// "scope.userLocation": true// }}})
openSetting
该 API 使用方法为 wx.openSetting(Object object)
功能说明:调起客户端小程序设置界面,返回用户设置的操作结果,用户发生单击行为后,可以跳转打开设置页,管理授权信息。
参数及说明:Object object。
属性 | 类型 | 默认值 | 必填 | 说明 |
success | function | - | 否 | 接口调用成功的回调函数 |
fail | function | - | 否 | 接口调用失败的回调函数 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数参数:Object res。
属性 | 类型 | 说明 |
authSetting | 用户授权结果 |
示例代码:
wx.openSetting({success(res) {console.log(res.authSetting)// res.authSetting = {// "scope.userInfo": true,// "scope.userLocation": true// }}})
wx.openSetting({success (res) {console.log(res.authSetting)// res.authSetting = {// "scope.userInfo": true,// "scope.userLocation": true// }}})
生物认证
checkIsSoterEnrolledInDevice
该 API 使用方法为 wx.checkIsSoterEnrolledInDevice(Object object)
功能说明:校验设备内是否录入生物信息。
参数及说明:Object object。
属性 | 类型 | 默认值 | 必填 | 说明 |
success | function | - | 否 | 接口调用成功的回调函数 |
fail | function | - | 否 | 接口调用失败的回调函数 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数参数:Object res。
属性 | 类型 | 说明 |
isEnrolled | boolean | 是否已录入信息 |
errMsg | string | 错误信息 |
示例代码:
wx.checkIsSoterEnrolledInDevice({success(res) {console.log(res.isEnrolled)}})
checkIsSupportSoterAuthentication
该 API 使用方法为 wx.checkIsSupportSoterAuthentication(Object object)
功能说明:校验本机是否支持生物认证,支持时回调 success,不支持时回调 fail。
参数及说明:Object object。
属性 | 类型 | 默认值 | 必填 | 说明 |
success | function | - | 否 | 接口调用成功的回调函数 |
fail | function | - | 否 | 接口调用失败的回调函数 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码:
wx.checkIsSupportSoterAuthentication({success() {// 支持生物认证}})
startSoterAuthentication
该 API 使用方法为 wx.startSoterAuthentication(Object object)
功能说明:开始生物认证。
参数及说明:Object object。
属性 | 类型 | 默认值 | 必填 | 说明 |
authContent | string | '' | 否 | 验证描述,即识别过程中显示在界面上的对话框提示内容 |
success | function | - | 否 | 接口调用成功的回调函数 |
fail | function | - | 否 | 接口调用失败的回调函数 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码:
wx.startSoterAuthentication({authContent: '生物认证解锁',success() {// 认证成功}})
授权
authorize
该 API 使用方法为 wx.authorize(Object object)
功能说明:提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。
参数及说明:Object object。
属性 | 类型 | 默认值 | 必填 | 说明 |
scope | string | - | 是 | 需要获取权限的 scope |
success | function | - | 否 | 接口调用成功的回调函数 |
fail | function | - | 否 | 接口调用失败的回调函数 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码:
// 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.record" 这个 scopewx.getSetting({success(res) {if (!res.authSetting['scope.record']) {wx.authorize({scope: 'scope.record',success() {// 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问wx.startRecord()}})}}})