老規(guī)矩,先看效果圖上一節(jié)教大家如何在本地運行php后臺項目,并可以被小程序訪問到,這一節(jié)就來給大家講一個實際工作中常用的需求,微信小程序openid的獲取。當然了,還是用我們的php做為后臺。
通過上圖我們可以看到我們成功的獲取到了小程序的openid,而這里獲取openid是借助php后臺獲取的。
我們的php核心代碼,只有下面10行
下面就來講講具體的實現(xiàn)步驟。
這里我在上一節(jié)的文章已經講過了,還不知道怎么配置本地php項目的同學可以去翻看我上篇文章:phpstorm運行本地PHP服務器,實現(xiàn)小程序可以訪問的PHP后臺
二,編寫php代碼只需要創(chuàng)建一個如下圖所示的簡單的php文件就可以了。
把代碼給大家貼出來。要記得把下面的appid和appSecret換成你自己的。至于如果獲取,我之前的文章也有講過,去翻下我零基礎入門小程序開發(fā)的文章即可。
<?php /** * 2019/9/21 20:34 * author: 編程小石頭 * wechat:2501902696 * desc: 獲取小程序用戶openid */ getOpenid(); function getOpenid() { $code = $_GET['code'];//小程序傳來的code值 $appid = 'wx4b55bb240aec2ee3';//小程序的appid $appSecret = '1f6f68884c1add6293cfa9b86e1f6bfd';// 小程序的$appSecret $wxUrl = 'https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code'; $getUrl = sprintf($wxUrl, $appid, $appSecret, $code);//把appid,appsecret,code拼接到url里 $result = curl_get($getUrl);//請求拼接好的url $wxResult = json_decode($result, true); if (empty($wxResult)) { echo '獲取openid時異常,微信內部錯誤'; } else { $loginFail = array_key_exists('errcode', $wxResult); if ($loginFail) {//請求失敗 var_dump($wxResult); } else {//請求成功 $openid = $wxResult['openid']; echo "獲取openid成功成功:" . $openid; } } } //php請求網絡的方法 function curl_get($url, &$httpCode = 0) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //不做證書校驗,部署在linux環(huán)境下請改為true curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $file_contents = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); return $file_contents; }
代碼就這么多,我們編寫好以后,運行下項目。
小程序的代碼很簡單,就是一個按鈕,點擊按鈕的時候我們請求上面定義好的php后臺項目。
小程序代碼也很簡單
代碼就上圖這么點,我把code.js里的代碼貼出來給大家
Page({ getCode() { let that = this; wx.login({ success(res) { console.log('code', res.code) that.getOpenid(res.code) } }) }, getOpenid(wxCode) { wx.request({ url: 'http://localhost:8080/Demo.php', data: { code: wxCode }, success(res) { console.log('獲取成功', res) }, fail(res) { console.log('獲取失敗', res) } }) } })
給大家解釋下上面的代碼,我們通過wx.login來獲取code,然后通過wx.request調用我們定義的php后臺。url里的 Demo.php必須和你的php文件名保持一致。
點擊按鈕以后,就可以成功的獲取到我們所需的小程序openid了。效果圖如下
到這里我們就成功的實現(xiàn)了PHP獲取小程序openid的功能了,是不是很簡單。
后面我會寫更多關于php和小程序的文章,敬請關注。
?
本文摘自 :https://blog.51cto.com/u