Miniapp-OpenId获取

OpenID:用户在一个小程序中唯一的一个标识符。一个用户在不同小程序中会有多个OpenID。
UserID:用户在所有微信小程序中的唯一标示。

使用方法:云端部署OpenId获取函数+本地调试+项目中调用

一:云端部署OpenId获取函数

  1. 新建云函数。在IDE中,cloud functions中右键新建文件夹(Node.js云函数)。新建后自动生成index.js和package.json
  2. 在云函数文件夹右键,上传并部署。
  3. 获取云环境ID。首先在tab栏进入Cloud Base,打开的窗口进去Setting,可以看到云环境Environment-ID,复制下来。
  4. 将云环境ID填入app.js中。wx.cloud.init({env: ‘xxxxxxx’, traceUser: true})
// getOpenId/index.js
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}
// getOpenId/package.json
{
  "name": "getOpenId",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "wx-server-sdk": "latest"
  }
}
新建云函数
本地项目中填入云环境ID
将云函数上传并部署

二:本地调试

  1. 本地安装node包。云调试前terminal进入在本地将云函数依赖cnpm安装。
  2. 进入Cloud Base中的云函数,在云函数列表中找到待调试的函数,进行Local Debug。
local debug前,需要本地安装node_package包
云函数的本地调试
云函数调试结果

三、项目中调用

在项目中通过以下函数进行调用。当调用所定义的getOpenId函数即可。

// bodyMeasure.js
data: { openId: '' }
// 定义调用云函数获取openid
getOpenId: function() {
  wx.cloud.callFunction({
    name: 'getOpenId',
    complete: res => {
      console.log('openid--', res.result)
    }
  })
}