​


openid作为小程序用户的唯一标示,就相当于用户在微信里的身份证一样,我们做小程序开发时,获取用户的openid是很重要的。我们之前获取用户的openid,如下图官方文档说明,是通过该wx.login先获取临时凭证,然后再用临时凭证去换取用户的openid,这样做无可厚非,但是小程序出了云开发之后,再用这种方法获取用户openid就显得有些麻烦了,因为通过云开发获取用户openid特别方便,并且可靠。


借助小程序云开发获取小程序用户openid_小程序云开发

下面就来带领大家借助云开发愉快的获取用户openid。

使用云开发之前需要简单了解下云开发,下面链接是官方学习文档。​​https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html​

一,开启云开发

借助小程序云开发获取小程序用户openid_小程序云开发_02

开启云开发只需要在开发者工具里点击上面红色框里的云开发按钮即可,创建成功后如下图

借助小程序云开发获取小程序用户openid_小程序云开发_03

二,创建云函数

  • 1,创建云函数所需文件夹
    借助小程序云开发获取小程序用户openid_云开发_04

  • 2,右键点击functions,点击同步云函数列表
    借助小程序云开发获取小程序用户openid_小程序_05

  • 3,右键点击functions,点击新建node.js云函数
    借助小程序云开发获取小程序用户openid_右键_06

  • 4,创建名为getOpenid的云函数
    借助小程序云开发获取小程序用户openid_右键_07

  • 5,编写获取openid的代码
    借助小程序云开发获取小程序用户openid_小程序_08

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
//获取用户的openid
exports.main = async(event, context) => {
return event.userInfo; //返回用户信息
}
  • 6,右键点击getOpenid,上传并部署云函数。
    借助小程序云开发获取小程序用户openid_云开发_09

三,使用getOpenid云函数获取用户openid

  • 1,在app.js里初始化云开发
//app.js
App({
onLaunch: function() {
//云开发初始化
wx.cloud.init({
env: 'prod-8aa9a5',
traceUser: true
})
}
})
  • 2,在首页使用云函数获取openid
//home.js
Page({
data: {
openid: '',
},
onLoad: function () {
this.getOpenid();
},
// 获取用户openid
getOpenid() {
let that = this;
wx.cloud.callFunction({
name: 'getOpenid',
complete: res => {
console.log('云函数获取到的openid: ', res.result.openId)
var openid = res.result.openId;
that.setData({
openid: openid
})
}
})
}
})

获取结果如下

借助小程序云开发获取小程序用户openid_云开发_10

到此我们就轻松的借助云开发云函数获取到了用户的openid了

如果你实现过程中,有遇到如下错误

调用失败 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID , cloud function service error code -504002, error message Function not found: [login]; at cloud.callFunction api;

借助小程序云开发获取小程序用户openid_小程序云开发_11