首页 > 作文

微信公众号实现扫码获取微信用户信息(网页授权)

更新时间:2023-04-07 10:50:42 阅读: 评论:0

刚开始接触微信的时候一头雾水,领导想要一个扫码获取微信用户信息的功能,而且是扫的别人的二维码,我是一阵忙活啊。

经过努力和尝试,终于功夫不负有心人啊,赶紧记录一下,我用的是thinkphp编写的。

第一步:就是二维码的生成

1.首先要确定第一个二维码,因为既然是扫码,肯定是要第一个二维码的,也就是第一人才可以。我将第一个二维码的唯一值(id)设置成零,然后开始我的编写

2.既然是二维码,我用了phpqrcode二维码生成插件,二维码的生成可以在本地编写,查看效果后再上传服务器。

(1)从网上下载下phpqrcode插件包,将它放到thinkphp的文件里,路径如下:thinkphp\library\vendor ,截图如下:

(2)二维码的生成,在调用显示二维码的控制器的方法中调用这个插件包,然后设置下扫描后跳转的url就好了,代码如下:

$url ="http://www.baidu.com";$level=3;$size=4;vendor('phpqrcode.phpqrcode'); //引入插件$errorcorrectionlevel = intval($level) ;//容错级别$matrixpointsize = intval($size);//生成图片大小//生成二维码图片$object = new \qrcode(); $path = "public/er/1.png"; //本地文件存储路径$object->png($url, $path, $errorcorrectionlevel, $matrixpointsize, 2);

这只是实现生成二维码并且可以进入二维码指定的网址,真正要实现的目的是扫带有参数的二维码,获取微信用户的信息

下面就是怎么实现生成带有参数的二维码

3.(1)英语单词怎么背要用到微信的网页授权,就要用到公众号的几个参数:1是appid 2是appcret 这是公众号申请成功后分配下来的

(2)利用这两个参数,然后再配合获取access_token的值就可以了

代码如下(扫描后跳转到geturinfo方法,并且把唯一键值传过去):

$tid = 0; //传值的参数$level=3;$size=4;vendor('phpqrcode.phpqrcode');$errorcorrectionlevel = intval($level) ;//容错级别$matrixpointsize = intval($size);//生成图片大小//生成二维码图片$object = new \qrcode();$path = "public/er/" . $tid . ".png"; //本地文件存储路径$object->png($url, $path, $errorcorrectionlevel, $matrixpointsize, 2);$appid='******'; //公众号唯一标识$redirect_ur浪漫节日i = urlencode ( 'http://www.****.net/index.php/admin/sindex/geturinfo?id='.$tid ); //这个是设置参数和授权后重定向的回调链接地址//snsapi_urinfo弹出授权页面,可通过openid拿到昵称、性别、所在地 snsapi_ba ,不弹出授权页面,直接跳转,只能获取用户openid $url ="/d/file/titlepic/authorize 

下面是写跳转后的操作

(1)接收传过来的值

(2)取得openid

(3)根据全局access_token和openid查询用户信息

(4)将信息写入数据库

获取openid或者其他的东西,用到下面的方法,可以快速截取到需要的东西

function getjson($url){ $ch = curl_init(); curl_topt($ch, curlopt_url, $url); curl_topt($ch, curlopt_ssl_verifyp龙缸天坑eer, fal);  curl_topt($ch, curlopt_ssl_verifyhost, fal);  curl_topt($ch, curlopt_returntransfer, 1); $output = curl_exec($ch); curl_clo($ch); return json_decode($output, true);}

 接下来就是将上面的步骤逐一实现,代码如下:

public function geturinfo(){ $appid = "*****"; //公众号唯一标识 $cret = "*****"; //应用秘钥 //$code是回调的时候地址上带的 只需要get方式接收就可以了 $code = $_get["code"];  //获取传过来的值 $htjid = $_get["id"]; //第一oldxxx步:取得openid $oauth2url = "/d/file/titlepic/access_token $oa王风黍离uth2 = $this->getjson($oauth2url); //第二步:根据全局access_token和openid查询用户信息  $access_token = $oauth2["access_token"];  $openid = $oauth2['openid'];  $get_ur_info_url = "/d/file/titlepic/urinfo $urinfo = $this->getjson($get_ur_info_url); //写入数据库微信用户 m()->starttrans();//开启事务 $n = m("zp_ur"); //写入的表 $openid = $data['openid'] = $urinfo['openid']; //微信用户openid $data['x'] = $urinfo['x']; //性别  $data['headimgurl'] = $urinfo['headimgurl']; //头像 $data['province'] = $urinfo['province']; //地区sheng $data['city'] = $urinfo['city']; //地区shi $data['subscribe_time'] = time(); //时间 $data['qr_scene'] = $htjid; //传过的值 $data['nickname'] = $urinfo['nickname']; //昵称 $z = $n->lock(true)->add($data); if(!$z) { m()->rollback();//回滚 $this->error('添加错误!'); }el{ m()->commit();//事务提交 }} 

到此,就可以实现扫描二维码获取用户信息了,并且将用户信息写入数据库

这是第一个二维码,生成后,就可以将id的参数值换成前面传过来的值,也就是扫码的值 $tid = 0; //传值的参数

如果想要自己的二维码页面好看的话,比如想要把自己的微信昵称和二维码合成一张图片的话,也是可以实现的,这就要用到图片的合成了,下次再说吧。

总结

以上所述是www.887551.com给大家介绍的微信公众号实现扫码获取微信用户信息(网页授权),希望对大家有所帮助

本文发布于:2023-04-07 10:50:39,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/dbd2480f636945ed3ad5877a338b6e01.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:微信公众号实现扫码获取微信用户信息(网页授权).doc

本文 PDF 下载地址:微信公众号实现扫码获取微信用户信息(网页授权).pdf

相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图