PHP對接微信掃碼登錄


 

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


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM