为了更精准的查找到用户对应的数据,单单用微信名是不够的,因为微信名可能会更改,这时,最好的办法就是通过读取用户openid,以此为检索的依据,因为在固定的小程序里面,用户的openid是固定的。
一下就是读取并调用用户openid的方法:
首先是在小程序绑定的服务器上添加一个授权并读取openid的文件,代码如下:
<?php
//声明CODE,获取小程序传过来的CODE
$code = $_GET["code"];
//配置appid
$appid = "这里输入你的小程序appid";
//配置appscret
$secret = "这里输入你的小程序appscret";
//api接口
$api = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$secret}&js_code={$code}&grant_type=authorization_code";
//获取GET请求
function httpGet($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);
return $res;
}
//发送
$str = httpGet($api);
echo $str;
?>
然后,在小程序里面对应的js文件中,添加对应的代码,来从服务器上取得数据:(将以下代码插入到onLoad: function () {} 里面)
//获取微信用户openid 开始
var that = this;
wx.login({
success: function (res) {
console.log(res.code)
//发送请求
wx.request({
url: 'https://你的网址/getopenid.php', //接口地址
data: { code: res.code },
header: {
'content-type': 'application/json' //默认值
},
success: function (res) {
console.log(res.data)
that.setData({
fmc: res.data,//将表中查询出来的信息传给list
})
}
})
}
});
//获取微信用户openid 结束
最后,就是在wxml里面通过 {{fmc.openid}} 来在前台调取具体值,可以放入表单内进行提交。
这里的fmc.对应前面js文件里的”fmc: res.data,//将表中查询出来的信息传给list”,可自行同时更改
附上对应的服务器端和小程序端代码文件。
[reply][/reply]
学习了!