第一种:使用云函数
这种比较简单,只需要开通云开发,创建云函数,调用云函数就可获得。
调用云函数 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.weixin.qq.com/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获取)