小程序获取用户的头像昵称openid之类
第一种使用wx.getUserInfo直接获取微信头像,昵称
wx.getUserInfo({
success: function (res) {
that.setData({
nickName: res.userInfo.nickName,
avatarUrl: res.userInfo.avatarUrl,
})
},
})
第二种
我们在使用小程序wx.login API进行登录的时候,直接使用wx.getUserInfo是不能获取更多的信息的,如微信用户的openid。
官方提示,需要发送获取到的code进行请求到微信的后端API,进行用户解密之类的操作才可以获取,
根据文档,只需要进行一个get请求到如下地址即可:
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code appid和secret在微信小程序后台可以看到,js_code为使用wx.login登录时获取到的code参数数据,grant_type这个不用改动。
js文件
var openId = (wx.getStorageSync('openId'))
if (openId) {
wx.getUserInfo({
success: function (res) {
that.setData({
nickName: res.userInfo.nickName,
avatarUrl: res.userInfo.avatarUrl,
})
},
fail: function () {
// fail
console.log("获取失败!")
},
complete: function () {
// complete
console.log("获取用户信息完成!")
}
})
} else {
wx.login({
success: function (res) {
console.log(res.code)
if (res.code) {
wx.getUserInfo({
withCredentials: true,
success: function (res_user) {
wx.request({
//后台接口地址
url: 'https://....com/wx/login',
data: {
code: res.code,
encryptedData: res_user.encryptedData,
iv: res_user.iv
},
method: 'GET',
header: {
'content-type': 'application/json'
},
success: function (res) {
// this.globalData.userInfo = JSON.parse(res.data);
that.setData({
nickName: res.data.nickName,
avatarUrl: res.data.avatarUrl,
})
wx.setStorageSync('openId', res.data.openId);
}
})
}, fail: function () {
wx.showModal({
title: '警告通知',
content: '您点击了拒绝授权,将无法正常显示个人信息,点击确定重新获取授权。',
success: function (res) {
if (res.confirm) {
wx.openSetting({
success: (res) => {
if (res.authSetting["scope.userInfo"]) {////如果用户重新同意了授权登录
wx.login({
success: function (res_login) {
if (res_login.code) {
wx.getUserInfo({
withCredentials: true,
success: function (res_user) {
wx.request({
url: 'https://....com/wx/login',
data: {
code: res_login.code,
encryptedData: res_user.encryptedData,
iv: res_user.iv
},
method: 'GET',
header: {
'content-type': 'application/json'
},
success: function (res) {
that.setData({
nickName: res.data.nickName,
avatarUrl: res.data.avatarUrl,
})
wx.setStorageSync('openId', res.data.openId);
}
})
}
})
}
}
});
}
}, fail: function (res) {
}
})
}
}
})
}, complete: function (res) {
}
})
}
}
})
}
},
globalData: {
userInfo: null
}
后台是php 框架是laravel5.4版本
官方文档:
https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html
微信官方提供了多种编程语言的示例代码(点击下载)。每种语言类型的接口名字均一致。调用方式可以参照示例。
下载之后在php文件中引入:
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Models\Wechatuser;
include_once app_path('/Http/Controllers/Admin/PHP/wxBizDataCrypt.php');
// 获取微信用户信息
public function getWxLogin(Request $request)
{
// require_once ROOTPATH . "./PHP/wxBizDataCrypt.php";
$code = $request->get('code');
$encryptedData = $request->get('encryptedData');
$iv = $request->get('iv');
$appid = "***" ;
$secret = "***";
$URL = "https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$secret&js_code=$code&grant_type=authorization_code";
$apiData=file_get_contents($URL);
// var_dump($code,'wwwwwwww',$apiData['errscode']);
// $ch = curl_init();
// curl_setopt($ch, CURLOPT_URL, $URL);
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// curl_setopt($ch, CURLOPT_HEADER, 0);
// $output = curl_exec($ch);
// curl_close($ch)
if(!isset($apiData['errcode'])){
$sessionKey = json_decode($apiData)->session_key;
$userifo = new \WXBizDataCrypt($appid, $sessionKey);
$errCode = $userifo->decryptData($encryptedData, $iv, $data );
if ($errCode == 0) {
return ($data . "\n");
} else {
return false;
}
}
}
官方文档的登录流程图,整个登录流程基本如下图所示:
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# 小程序
# openid
# openid的使用方法
# 微信小程序授权获取用户详细信息openid
# 微信小程序获取用户openid的方法详解
# 微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
# 微信小程序如何获取openid及用户信息
# 微信小程序获取用户openid的实现
# 微信小程序 springboot后台如何获取用户的openid
# 详解微信小程序-获取用户session_key
# unionid - 后端为nodejs
# 微信小程序获取用户openId的实现方法
# 微信小程序获取用户openid的图文教程(含源码)
# 文档
# 如有
# 希望能
# 才可以
# 可以看到
# 只需要
# 点击下载
# 所示
# 谢谢大家
# 个人信息
# 第二种
# 第一种
# 如下图
# 正常显示
# 编程语言
# 后端
# 疑问请
# 同意了
# 微信小
# authorization_code
相关文章:
简历在线制作网站免费,免费下载个人简历的网站是哪些?
如何在建站主机中优化服务器配置?
建站之星在线客服如何快速接入解答?
建站之星如何防范黑客攻击与数据泄露?
如何有效防御Web建站篡改攻击?
一键网站制作软件,义乌购一件代发流程?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
c++ stringstream用法详解_c++字符串与数字转换利器
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
广州建站公司哪家好?十大优质服务商推荐
北京网站制作公司哪家好一点,北京租房网站有哪些?
如何在Golang中指定模块版本_使用go.mod控制版本号
如何确认建站备案号应放置的具体位置?
h5在线制作网站电脑版下载,h5网页制作软件?
如何快速搭建高效服务器建站系统?
如何在橙子建站中快速调整背景颜色?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
如何解决ASP生成WAP建站中文乱码问题?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
建站之星ASP如何实现CMS高效搭建与安全管理?
建站主机类型有哪些?如何正确选型
如何用花生壳三步快速搭建专属网站?
如何选择美橙互联多站合一建站方案?
济南网站制作的价格,历城一职专官方网站?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
如何快速选择适合个人网站的云服务器配置?
制作网页的网站有哪些,电脑上怎么做网页?
深圳网站制作的公司有哪些,dido官方网站?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
制作销售网站教学视频,销售网站有哪些?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
如何在IIS中新建站点并解决端口绑定冲突?
nginx修改上传文件大小限制的方法
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
黑客入侵网站服务器的常见手法有哪些?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
,怎么在广州志愿者网站注册?
中山网站推广排名,中山信息港登录入口?
如何在景安服务器上快速搭建个人网站?
如何用景安虚拟主机手机版绑定域名建站?
如何通过NAT技术实现内网高效建站?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
如何选择域名并搭建高效网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。