获取用户openid
openid是微信用户的唯一标识,即辨别用户的唯一属性,小程序中很多地方都会用到openid,比如微信支付、获取数据库的信息等,所以获得在开发微信小程序时,很多时候都需要获取到openid。云开发获取用户的openid的方式可以使用云函数。
首先,右键functions文件夹,选择"添加Node.js",信件一个函数,然后修改该函数的js文件即可。
云函数代码:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init(
{
//选择自己微信云开发控制台的环境,防止有多个环境时出错
env:'cloud-development-j9xlv'
}
)
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {openid: wxContext.OPENID,}
}
然后再到js调用云函数,因为openid需要用的地方很多,所以可以将其设置在app.js得全局变量中;
//app.js
App({
onLaunch: function () {
//云初始化
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力')
} else {
wx.cloud.init({
// env 参数说明:
// env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
// 此处请填入环境 ID, 环境 ID 可打开云控制台查看
// 如不填则使用默认环境(第一个创建的环境)
// env: 'my-env-id',
traceUser: true,
})
}
this.globalData = {
openid:''
}
}
})
test.js
//调用app.js
const app = getApp()
Page({
data:{
userInfo:[],
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var self = this //代表的是当前的js文件的整个page
//调用云函数
wx.cloud.callFunction({
name:'getOpenid',
success: res => {
console.log("或得结果:"+res.result.openid)
//设置全局变量openid
app.globalData.openid = res.result.openid
console.log("全局变量openid:"+app.globalData.openid)
}
})
})