关于微信小程序后端获取openId的方法

<!-- 2018年10月12日 ,这时已经有官方的云函数来便捷地获取用户openId了,这个我以后再说下-->

首先,你需要弹出授权弹窗,得到用户同意。由于5月getUserInfo接口废弃,如何获得请参考我的一篇博客:

https://blog.csdn.net/qq_32117641/article/details/80554966;

 

其次,授权后你可以通过

wx.login({
    success: function (res) {
        var code = res.code;
    }
})

获取一个有效期5分钟的code字符串;

 

 

然后,你需要通过访问

https://api.weixin.qq.com/sns/oauth2/access_token?appid=你的appid码&secret=你的secret码&code=上面code码&grant_type=authorization_code

得到json数据包,里面有openId

(这里要注意,app.weixin.qq.com不能做request域名,上述地址并不能放在前端代码中,因为它包含了你的appid和secret)

怎么办?

我是在bmob后端云做了个云函数,小程序request云函数,传去code,函数拼接访问地址得到含openId的数据包并返回给小程序,小程序再进行解析。

云函数:

function onRequest(request, response, modules) {
    var code = request.body.name;
    var http = modules.oHttp;
    http('https://api.weixin.qq.com/sns/jscode2session?appid=你的appid码&secret=你的secret码&js_code='+code+'&grant_type=authorization_code',
        function (error, res, body) {
           response.send(body);
    });
}                                                                                    

前端接收:

Bmob.Cloud.run('getOpenId', { "name": res.code }, {       
    success: function (result) {
        var s = result.split("\"");
        var openid = s[7];
    }
})    //getOpenId是云函数名,res.code是wx.login获得的code

至此,openId就得到了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

winrh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值