上一节教你们如何在本地运行php后台项目,并能够被小程序访问到,这一节就来给你们讲一个实际工做中经常使用的需求,微信小程序openid的获取。固然了,仍是用咱们的php作为后台。php
这里我在上一节的文章已经讲过了,还不知道怎么配置本地php项目的同窗能够去翻看我上篇文章:phpstorm运行本地PHP服务器,实现小程序能够访问的PHP后台linux
只须要建立一个以下图所示的简单的php文件就能够了。 编程
<?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后台项目。 小程序代码也很简单 小程序
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