上一節教你們如何在本地運行php後臺項目,並能夠被小程序訪問到,這一節就來給你們講一個實際工做中經常使用的需求,微信小程序openid的獲取。固然了,仍是用咱們的php作爲後臺。php
這裏我在上一節的文章已經講過了,還不知道怎麼配置本地php項目的同窗能夠去翻看我上篇文章:phpstorm運行本地PHP服務器,實現小程序能夠訪問的PHP後臺linux
只須要建立一個以下圖所示的簡單的php文件就能夠了。 編程
把代碼給你們貼出來。要記得把下面的appid和appSecret換成你本身的。至於若是獲取,我以前的文章也有講過,去翻下我零基礎入門小程序開發的文章便可。<?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環境下請改成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;
}
複製代碼
代碼就這麼多,咱們編寫好之後,運行下項目。 json
小程序的代碼很簡單,就是一個按鈕,點擊按鈕的時候咱們請求上面定義好的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了。效果圖以下 api
到這裏咱們就成功的實現了PHP獲取小程序openid的功能了,是否是很簡單。bash