开放接口

最近更新时间:2024-05-17 14:18:01

我的收藏

登录

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.userInfo
var nickName = userInfo.nickName
var avatarUrl = userInfo.avatarUrl
var gender = userInfo.gender //性别 0:未知、1:男、2:女
var province = userInfo.province
var city = userInfo.city
var 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
允许被添加好友,主动调用 wx.authorize 接口进行授权

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" 这个 scope
wx.getSetting({
success(res) {
if (!res.authSetting['scope.record']) {
wx.authorize({
scope: 'scope.record',
success() {
// 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
wx.startRecord()
}
})
}
}
})