小程序使用“微信账号登录”获取不到openid,提示“未登录”。
requestID: b3a9dd5-1380-4bfb-901e-af8f9dfdcf8f,请求时间: 2026年2月25日12:19左右
代码:
const cloud = require('wx-server-sdk');
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV });
const db = cloud.database();
function getOpenId(event, context) {
// 1. getWXContext(同步,返回 OPENID)
if (cloud.getWXContext) {
try {
const wxContext = cloud.getWXContext();
if (wxContext && wxContext.OPENID) return wxContext.OPENID;
if (wxContext && wxContext.openid) return wxContext.openid;
} catch (e) {}
}
// 2. 入参 context(微信注入)
if (context && context.openid) return context.openid;
if (context && context.OPENID) return context.OPENID;
if (context && context.userInfo && context.userInfo.openId) return context.userInfo.openId;
// 3. 网关有时会把用户信息放在 event
if (event && event.userInfo && event.userInfo.openId) return event.userInfo.openId;
if (event && event.openid) return event.openid;
return '';
}
exports.main = async (event, context) => {
let openid = getOpenId(event, context);
if (!openid && cloud.getWXContext) {
try {
const p = cloud.getWXContext();
const wxContext = typeof p.then === 'function' ? await p : p;
openid = (wxContext && (wxContext.OPENID || wxContext.openid)) || '';
} catch (e) {}
}
if (!openid) {
return { ok: false, errMsg: '未登录' };
}

你自己调试下代码, 不行吗