1、PC端扫码登录
如果你将微信小程序和公众账号绑定同一个微信开放平台,那么他们各自的接口返回有一个参数unionid是相同的(没有绑定微信公众账号就没有);那么你就可以使用这个unionid来做业务处理了
接下来会详细介绍以上接口如何获取用户微信信息
PC端扫码登录
1、首先到微信开放平台注册一个账号,资料自己对着填
2、在管理中心-》网站应用-》创建网站应用 填写要微信扫码的网站资料
自己准备资料填写就好了,就提交上去
3、接下来就使用php来对接微信扫码登录了
官方文档:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html
里面的参数根据自己的情况设置,这里只是举个例子参考
3.1发起微信扫码请求,创建login.php文件
<?php
$appid=xxxxx;#在微信开放平台的应用中可以查看
$redirect_uri=\'http://www.xxxx.com/index.php\';
$state=\'ok\';#这个参数根据自己的业务填,可以不填
$url=\'https://open.weixin.qq.com/connect/qrconnect?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_login&state=$state#wechat_redirect\';
header("Loction:".$url);
以下是请求的参数 ,具体的看官网
3.2写一个单独的方法(index.php)获取code,其中微信官方会通过上面的redirect_uri参数找到你这个地址,其中你只要被动接受code就好了
<?php $code=$_GET[\'code\']; $state=$_GET[\'sate\']; $appid=xxxxx; $secret=xxxx; #我们可以通过code获取access_token,返回的接口可以var_dump打印一下 $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code"; $res=file_get_contents($url);
返回参数如下图官方的介绍
如果想获取用户的数据那么可以
<?php $code=$_GET[\'code\']; $state=$_GET[\'sate\']; $appid=xxxxx;#开放平台获取 $secret=xxxx;#开放平台获取 #我们可以通过code获取access_token, $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code"; $res=file_get_contents($url);#返回数据可以var_dump打印一下
$res=json_decode($res,true);#这里结果自己判断
$url1="https://api.weixin.qq.com/sns/userinfo?access_token=$res[\'access_token\']&openid=$res[\'openid\']";
$userInfo=file_get_contents($url1);#userInfo就是微信获取的用户数据,其中包括openid和unionid,头像、微信昵称等等
以下就是userInfo里面的数据,下图是微信官网的参照图
那么你每次通过微信扫码登录就可以把数据跟新或插入到数据库了,其中最主要的就是用到unionid,如果你微信开放平台关联了小程序,那么小程序返回的openid和unionid中openid和微信扫码返回的openid不一样,unionid是相同的,那么我们就可以判断是同一个用户了