1.小程序js端調用框架登陸API,獲取到一個臨時code,拿着這個code去調用自己的服務端接口
2.在自己的服務器端,使用app_id app_secrect code可以獲取到用戶的openid,這個id是用戶唯一的id並且不會改變,可以把這個id返回給小程序端
小程序端本地保存openid
3.獲取用戶信息很簡單,並且不需要自己的服務器處理,只需要小程序端提供的API。
前端頁面wxml使用一個按鈕,按鈕里增加幾個屬性,就可以回調到小程序js部分的方法上,並且帶着用戶的個人信息,如昵稱 頭像等
4.這個時候就可以把該用戶的openid 和 昵稱,頭像,一塊調用自己服務端接口,保存到數據庫中
index.js
const app = getApp() Page({ data: { openid:"" }, //按鈕回調的方法 getPerson:function(e){ console.log(this.data.openid); console.log(e); }, onLoad: function () { var self=this; wx.login({ success(res) { //js調用登陸命令獲取到code if (res.code) { //通過code調用自己服務接口獲取到openid wx.request({ url: 'https://api.sopans.com/third/wxOpenId.php', data: { code: res.code }, success:function(wxInfo){ console.log(wxInfo); self.data.openid = wxInfo.data.openid } }) } else { console.log('登錄失敗!' + res.errMsg) } } }) }, })
index.wxml
<button open-type="getUserInfo" bindgetuserinfo="getPerson">獲取用戶信息</button>
$appid = ''; // 小程序APPID $secret = ''; // 小程序secret $code=$_GET['code']; $url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' . $appid . '&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code'; $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); echo $res; // 這里是獲取到的信息