微信小程序-使用云函数获取微信的openid

1、新建云函数login_get_openid

        云开发环境初始化参见:https://blog.youkuaiyun.com/yuxiao1121/article/details/125222407

        新建云函数参见:https://blog.youkuaiyun.com/yuxiao1121/article/details/125235036

2、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,
    }
}

3、在使用的地方添加代码:

 app.js

    onLaunch() {
        console.log('小程序开始启动啦')
        // 云开发环境初始化
        wx.cloud.init({
            env: '自己的云开发环境ID' // 云开发环境ID
        })
        
        // 获取用户的openid
        var that = this;
        wx.cloud.callFunction({
            name: 'login_get_openid', // 云函数
            success(res) {
                console.log(res)
            }
        })
    },

4、保存编译后,可以在控制台上看到输出的信息:

 获得了openid

以上内容参见自不负卿@的博客:微信小程序云函数,以获取openid为例_不负卿@的博客-优快云博客_小程序云开发获取openid

5、总结

采用云函数的方式获取openid,可解决使用wx.login时出现的40029错误 

### 微信小程序集成 UniCloud 云函数 #### 创建和配置云函数 要在微信小程序使用 UniCloud 云函数,首先需要创建并配置这些云函数。这通常是在微信开发者工具中的编辑器完成的[^1]。 ```javascript // example.js - 示例云函数文件 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV // 使用当前环境 }) exports.main = async (event, context) => { const wxContext = cloud.getWXContext() return { event, openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, } } ``` 编写完成后,需上传并部署云函数以便后续调用。 #### 页面中调用云函数 在 HBuilderX 或者其他 IDE 中开发的小程序页面可以通过 `wx.cloud.callFunction` 方法来调用已发布的云函数: ```javascript Page({ onLoad() { this.invokeMyCloudFunc(); }, invokeMyCloudFunc() { wx.cloud.callFunction({ name: 'example', // 对应上面定义的名字 data: {}, success(res) { console.log('callFunction result:', res.result); }, fail(err) { console.error('callFunction failed:', err); } }); } }) ``` 对于某些特定场景下的接口需求,如果遇到非必填项但在文档中标记为必需的情况,则应当按照最新官方指南进行处理;同时注意回调地址可通过开启云函数公网访问权限解决[^2]。 #### 用户身份验证与 OAuth 接口限制 当涉及到更高安全级别的操作时,可能会依赖于微信OAuth机制来进行用户身份验证。此时建议通过模拟Cookies的方式绕过浏览器兼容性问题,并确保能够正常加载所需资源和服务[^3]。 #### 开通微信支付前准备事项 为了顺利集成微信支付服务至小程序应用内,请确认满足以下几点前置条件:拥有经过认证的企业类型小程序账户以及相应的营业执照和其他必要资质证明材料[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值