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是相同的,那么我們就可以判斷是同一個用戶了