第一种:使用云函数
这种比较简单,只需要开通云开发,创建云函数,调用云函数就可获得。
调用云函数 Promise Cloud.callFunction(Object object) 返回一个Promise对象,所以不用考虑异步问题。
具体代码如下:
我这里云函数名为helloCloudopenId
// helloCloud-index.js 云函数入口函数exports.main = async (event, context) => {let{APPID,OPENID}=cloud.getWXContext()return {APPID,OPENID}//------------------------------------------------------//云函数调用wx.cloud.callFunction({name:'helloCloudopenId',data:{message:'helloCloudopenId',}}).then(res=>{console.log(res)//res就将appid和openid返回了//做一些后续操作,不用考虑代码的异步执行问题。})
第二种:不使用云开发
这种方式就需要开发者有自己的后台了。
首先需要在微信小程序调用登录开放接口 wx.login() 获取用户登陆凭证code。
wx.login()接口说明 https://developers./miniprogram/dev/api/open-api/login/wx.login.html
然后,向自己的服务器发送请求,并将code一起发送过去。
wx.login({success (res) {if (res.code) {//发起网络请求wx.request({url: '自己的服务器请求接口',data: {code: res.code}})} else {console.log('登录失败!' + res.errMsg)}}})
还有就是PC客户端的HOOK(Code ,openId, signature,encryptedData,iv,cloud_id都可以hOOK获取)