微信小程序php后台实现
这里简单介绍用php后台实现获取openid并保存到数据库;
微信的登陆流程是这样的
首先前端发送请求到服务器: wx.login({ success: function (res) { var code = res.code;//发送给服务器的code wx.getUserInfo({ success: function (res) { var userNick = res.userInfo.nickName;//用户昵称 var avataUrl = res.userInfo.avatarUrl;//用户头像地址 var gender = res.userInfo.gender;//用户性别 if (code) { wx.request({ url: \'http://localhost/test/getopenid.php\',//服务器的地址,现在微信小程序只支持https请求,所以调试的时候请勾选不校监安全域名 data: { code: code, nick: userNick, avaurl: avataUrl, sex: gender, }, header: { \'content-type\': \'application/json\' }, success: function (res) { console.log(res.data); wx.setStorageSync(\'name\', res.data.name);//将获取信息写入本地缓存 wx.setStorageSync(\'openid\', res.data.openid); wx.setStorageSync(\'imgUrl\', res.data.imgurl); wx.setStorageSync(\'sex\', res.data.sex); } }) } else { console.log("获取用户登录态失败!"); } } }) }, fail: function (error) { console.log(\'login failed \' + error); } }) 这样就实现了将前端获取的code发送到服务器,code每次获取的都不一样;
服务器getopenid.php代码: <?php text(); function text() { $code = $_GET[\'code\'];//小程序传来的code值 $nick = $_GET[\'nick\'];//小程序传来的用户昵称 $imgUrl = $_GET[\'avaurl\'];//小程序传来的用户头像地址 $sex = $_GET[\'sex\'];//小程序传来的用户性别 $url = \'https://api.weixin.qq.com/sns/jscode2session?appid=yourAppid&secret=appSecret&js_code=\' . $code . \'&grant_type=authorization_code\'; //yourAppid为开发者appid.appSecret为开发者的appsecret,都可以从微信公众平台获取; $info = file_get_contents($url);//发送HTTPs请求并获取返回的数据,推荐使用curl $json = json_decode($info);//对json数据解码 $arr = get_object_vars($json); $openid = $arr[\'openid\']; $session_key = $arr[\'session_key\']; $con = mysqli_connect(\'localhost\', \'root\', \'123\');//连接数据库 if ($con) { if (mysqli_select_db($con, \'students\')) { $sql1 = "select * from weixin where openid = \'$openid\'"; $result = mysqli_query($con, $sql1); $result = mysqli_fetch_assoc($result); if ($result!=null) {//如果数据库中存在此用户的信息,则不需要重新获取 $result = json_encode($result); echo $result; } else {//没有则将数据存入数据库 if ($sex == \'0\') { $sex = \'none\'; } else { $sex = \'1\' ? \'man\' : \'women\'; } $sql = "insert into weixin values (\'$nick\',\'$openid\',\'$session_key\',\'$imgUrl\',\'$sex\')"; if (mysqli_query($con, $sql)) { $arr[\'nick\'] = $nick; $arr[\'imgUrl\'] = $imgUrl; $arr[\'sex\'] = $sex; $arr = json_encode($arr); echo $arr; } else { die(\'failed\' . mysqli_error($con)); } } } } else { die(mysqli_error()); } } ?>
版权声明:本文为tmdsleep原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。