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