php怎么判断微信有没有登录,通过PHP获取用户微信openid,判断是否有认证

本文详细介绍了如何利用PHP实现微信openid的获取,从而进行用户认证。首先需要在微信公众号后台设置授权域名,并下载验证文件。接着,通过AppID和AppSecret获取code,再用code换取openid。然后,比对openid与数据库,判断用户是否已认证。如果未认证,引导用户完成绑定。示例代码使用了MSSQL数据库进行操作。
摘要由CSDN通过智能技术生成

同学们好,今天我们来讲一讲如何用PHP获取微信openid。

需求:

在微信当中我们访问我们自己的网页的时候,让它自动判断你是不是已经认证过了,如果认证通过就直接访问页面,如果没有认证那需要它微信绑定才能访问,绑定之后,以后访问就不需要认证了。这里我们需要通过微信的openid来判断认证信息。

原理:

1.公众号后台设置“网页授权域名”(把你这个网页放到哪个域名下面)

2.通过后台提示下载“MP_verify_w5FcRq39x19ULS9U.txt”放至你网站的根目录

3.通过后台获取AppID和$AppSecret

4.通过代码先获取公众号的code

5.通过code来获取具体的openid

6.通过openid与数据库对比,来判断是否一样,如果一样就说明认证过了,如果没有,则没有认证,可以跳转至另一个页来认证,最后把openid保存至数据库(跳转的认证请你自己去写代码了,我们这里只重点讲获取openid)

后台设置效果:

f496d6ec635e1166dcd7dfa071d97adc.png后台的AppID和AppSecret

f6924d79528f86a057bda13323a94772.png

注意:

这里只能写二个域名

接下来我们从第3点开始写代码获取code

我写了一个getcode.php页面:

通过getcode.php页面可以获得一个code的东西。它会返回一个地址类似xxxxx.php?code=xxxxxxx&state=123

后面的这个?code=……123 是微信自动跳转添加的,不是你自己加的

接下来,我们通过getopenid.php来接收一下code.

$_GET["code"]获取就可以了。

getopenid.php页面代码:

<?php //获取用户openid$appid="";//你的appid$appsecret="";//你的appsecret$code=$_GET['code'];function getOpenID($appid,$appsecret,$code){$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code";$weixin=file_get_contents($url);//通过code换取网页授权access_token$jsondecode=json_decode($weixin); //对JSON格式的字符串进行编码$array = get_object_vars($jsondecode);//转换成数组$openid = $array['openid'];//输出openidreturn $openid;}$openid=getOpenID($appid,$appsecret,$code);//获取到openidif($openid==""){echo "您没有绑定微信,请联系管理员!";exit;}//与数据库对比来判断有没有认证$serverName = "xxxx"; //数据库服务器地址$uid = "xxxxx"; //数据库用户名$pwd = "xxxx"; //数据库密码$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"xxxxx");//数据库名称$conn = sqlsrv_connect($serverName, $connectionInfo);if( $conn == false){echo "连接失败!";exit;}else{$sql = "SELECT * FROM 表名 where t_weixinid='".$openid."'";$stmt = sqlsrv_query( $conn,$sql);if( $stmt === false) {die( print_r( sqlsrv_errors(), true) );exit;}while($row = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC)){.........//这里可以自己写后续代码}}

注意:

我这里用的是mssql数据库。

我写了一个函数,getOpenID(),三个参数就可以得到openid.

$openid=getOpenID($appid,$appsecret,$code); 可以获取openid.

有了openid就可以去操作其他的东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值