为了更精准的查找到用户对应的数据,单单用微信名是不够的,因为微信名可能会更改,这时,最好的办法就是通过读取用户openid,以此为检索的依据,因为在固定的小程序里面,用户的openid是固定的。
一下就是读取并调用用户openid的方法:
首先是在小程序绑定的服务器上添加一个授权并读取openid的文件,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?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 () {} 里面)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//获取微信用户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”,可自行同时更改
附上对应的服务器端和小程序端代码文件。
学习了!