下面是详细讲解“手把手教你如何获取微信用户openid”的完整攻略。
准备工作
- 申请微信公众号账号,开通开发者模式。
- 在公众号开发者中心配置服务器相关信息。
获取 openid
方法一:利用微信网页授权机制获取
- 在微信公众平台开发者中心,打开网页开发,配置公众号授权域名,并设置网页授权的回调域名。
- 在前端页面中,引入微信JS-SDK,并使用 wx.config 进行签名验证。
- 在前端页面中,调用 wx.ready() 后的 jsapi_ticket,通过wx.getUserInfo 获取用户授权,其中包含用户唯一标识 OpenID。
示例代码:
wx.config({
debug: false,
appId: '',
timestamp: '',
nonceStr: '',
signature: '',
jsApiList: [
'checkJsApi',
'onMenuShareAppMessage',
'onMenuShareTimeline',
'getLocation',
'openLocation',
'chooseWXPay',
'openCard',
'getUserInfo'
]
});
wx.ready(function () {
// 通过wx.getUserInfo 获取用户授权,其中包含用户唯一标识 openId
wx.getUserInfo({
success: function (res) {
var openId = res.userInfo.openId;
// 将 openId 发送到后端服务器,并进行处理
},
fail: function (res) {
console.log(res);
}
});
});
方法二:利用微信公众号接口获取
- 在前端页面中,发送请求至后端服务器,后端服务器将伪造授权请求,使用公众号的 access_token 发起授权请求。
- 用户在确认授权后,微信服务器将用户信息发送至公众号后台,公众号后台获取 openid。
- 将获取到的 openid 传回前端页面。
示例代码:
$.ajax({
url: '/getOpenId',
type: 'POST',
dataType: 'json',
data: {},
success: function (res) {
// 获取到 openid 数据,进行处理
},
error: function (xhr, status, error) {
console.log(error);
}
});
后端代码(基于 Node.js):
router.post('/getOpenId', function (req, res) {
var code = req.body.code;
var url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' + appID + '&secret=' + appSecret + '&code=' + code + '&grant_type=authorization_code';
request(url, function (err, resq, body) {
if (!err && resq.statusCode === 200) {
var userData = JSON.parse(body);
var openId = userData.openid; // 获取openid
// 将 openId 发送到前端页面处理
res.send({status: true, data: openId});
} else {
res.send({status: false, error: err, errMsg: '获取 openid 失败'});
}
});
});
结束语
以上就是获取微信用户 openid 的两种方法,可以根据项目需要进行选择。希望本文能对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:手把手教你如何获取微信用户openid - Python技术站