公告:本站整合全网多家VIP站点资源,全网虚拟资源一手掌握!!!
欢迎您访问本网站,请 注 册了解更多!
背景
之前每次写到获取openid 就觉得特别麻烦,网上很多代码段会把一部分功能分开写,确实相对合理,但是对于复制粘贴代码来说依赖越少越方便,所以根据自己的经验做了一个极简的复用代码
前置条件
1.公众号已认证,否则会出现“Scope 参数错误或没有 Scope 权限”
2.公众号后台设置安全域名
【公众号设置】=》【功能设置】=》【JS接口安全域名
】&【网页授权域名】
代码
前端
getOpenId(){ const code = getUrlParam('code') // 截取路径中的code, if (code == null || code === '' || code === false) { const local = window.location.href let appid='<公众号appid>' window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='+appid+'&redirect_uri=' + encodeURIComponent(local) + '&response_type=code&scope=snsapi_base&state=1#wechat_redirect'; } else { let that=this; axios.post('/index/active/getUserInfo?code='+code).then((r)=>{ console.log(r.data) }) } }
后端
此处以php 为例
如果只是需要获取到openid,不需要其他信息
public function getOpenid(){ $appid = '<公众号appid>'; $secret = '<公众号secret>'; $code = $_GET["code"]; $url ="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$secret."&code=".$code."&grant_type=authorization_code"; $weixin = file_get_contents($url); $jsondecode = json_decode($weixin); $array = get_object_vars($jsondecode); return json($array); }
如果需要根据openid进一步获取用户信息
public function getUserInfo(){ $appid = '<公众号appid>'; $secret = '<公众号secret>'; $code = $_GET["code"]; $get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code'; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$get_token_url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $res = curl_exec($ch); curl_close($ch); $json_obj = json_decode($res,true); $access_token = $json_obj['access_token']; $openid = $json_obj['openid']; $get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN'; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$get_user_info_url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $res = curl_exec($ch); curl_close($ch); $user_obj = json_decode($res,true); $_SESSION['user'] = $user_obj; return json($user_obj); }
- 上一篇:php项目中 composer update install 区别
- 下一篇:已经是最后一篇了
本站所有资源都来源于网络收集、网友提供或者交换而来!如果侵犯了您的权益,请及时联系本站客服,我们立刻删除!
猜你还喜欢
- 10-19 H5页面获取微信用户openid极简攻略
- 10-19 php项目中 composer update install 区别
- 10-16 vue-h5微信公众号 网页授权登录(静默授权)
- 10-16 vue微信H5自定义分享兼容ios、PC、安卓
- 10-16 laravel SimpleQrCode 扩展包生成二维码使用记录
- 10-16 [最新]mac安装ImageMagick与PHP扩展Imagick
- 10-16 mac安装ImageMagick与PHP扩展imagick
- 10-16 laravel常用目录路径获取方法
- 10-16 [扩展推荐] Laravel 的整站静态页面缓存
- 10-16 Github webhooks 自动部署博客文章,使用总结【含视频】
- 10-16 PHPExcel 设置单元格受保护,不可编辑,或需要密码
- 10-16 如何创建受密码保护的pdf文件
暂无评论,来添加一个吧。