这里简单介绍用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());
}
} ?>

  

微信小程序php后台实现的更多相关文章

  1. 微信小程序结合后台数据管理实现商品数据的动态展示、维护

    微信小程序给我们提供了一个很好的开发平台,可以用于展现各种数据和实现丰富的功能,本篇随笔介绍微信小程序结合后台数据管理实现商品数据的动态展示.维护,介绍如何实现商品数据在后台管理系统中的维护管理,并通 ...

  2. 微信小程序+java后台

    博主是大四学生,毕业设计做的是微信小程序+java后台.陆陆续续经历了三个月(因为白天要实习又碰上过年玩了一阵子),从对微信小程序一无所知到完成毕设,碰到许多问题,在跟大家分享一下自己的经历和一个小程 ...

  3. 微信小程序管理后台介绍

    微信小程序的管理后台,每次进入都需要扫码,还是特别不爽,现在微信小程序还没正式发布,很多人都还没看到管理后台,这里抢先发布出来 ------------------------------------ ...

  4. 微信小程序之后台https域名绑定以及免费的https证书申请

    微信小程序在11月3号发布了,这是一个全新的生态,没有赶上微信公众号红利的开发者,运营者可别错过这趟车了. 但是微信的后台需要全https,之前我还不相信,后台注册了后进后台才发现,服务器配置如下图 ...

  5. (二)校园信息通微信小程序从后台获取首页的数据笔记

    在从后台获取数据之前,需要先搭建好本地服务器的环境. 确保Apache,MySql处于开启状态.下图为Apache,MySql处于开启时状态 然后进入后台管理平台进行字段和列表的定义 然后在后台添加数 ...

  6. 微信小程序-展示后台传来的json格式数据

    昨天粗粗的写了下后台数据传到微信小程序显示,用来熟悉这个过程,适合刚入门学习案例: 需了解的技术:javaSE,C3p0,jdbcTemplate,fastjson,html,javaScript,c ...

  7. 行星万象表白墙微信小程序、社交微信小程序,后台完整,支持多区域运营,扫码体验。

    简介 中国目前大概有5000个表白墙,累计用户近3000万,是一个庞大的群体,但现在大都以微信朋友圈为基础进行信息中转,但是这种模式经营者和用户都不友好,尤其是经营者无法变现,用户无法公开评论,这些种 ...

  8. 微信小程序调用后台接口+热点新闻滚动展示

    1.微信JS文件,发送请求调用:  //将返回接口数据,写入Page({data})里面 //获取热点新闻,这个也是写在onload:function(){//code)里面的 wx.request( ...

  9. [转]微信小程序 c#后台支付结果回调

    本文转自:http://www.cnblogs.com/weizhiing/p/7700723.html 又为大家带来简单的c#后台支付结果回调方法,首先还是要去微信官网下载模板(WxPayAPI), ...

随机推荐

  1. codevs——1979 第K个数

    1979 第K个数  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 给定一个长度为N(0<n<=10 ...

  2. bootstrap-table方法之:expandRow-collapseRow,展开或关闭当前行数据

    官方演示地址:http://issues.wenzhixin.net.cn/bootstrap-table/methods/expandRow-collapseRow.html <!DOCTYP ...

  3. Java Web开发基础(1)-Servlet

    概述 Servlet技术是对webserver的扩展,要理解这个,可能先了解一下什么是Webserver以及它的功能,特别是它的不足是非常有帮助的,可參考:点击打开链接.另外.Servlet也是一个用 ...

  4. wpf 禁用启用webbroswer右键菜单

    //禁用脚本错误等类似的窗口信息 this.webBrowser1.ScriptErrorsSuppressed = true; //禁用右键菜单 this.webBrowser1.IsWebBrow ...

  5. iOS屏幕适配方案-Auto Layout

    市场上的android手机五花八门.各种尺寸的屏幕让android程序员们比較头疼. 也有一些大神写了一些博客提出了自己的观点.iOS貌似也迎来了大屏6+,因此屏幕适配的问题也是有滴,因此苹果也有自己 ...

  6. Android资源文件命名规范

    在复杂Android应用的开发中,资源文件的规范命名非常重要,能帮助设计人员和开发人员减小沟通成本.资源的名字尽量力求准确,可以适当长一些,但换回的价值是值得的. 关于WCC的Android开发,资源 ...

  7. BestCoder Round #60/HDU 5505 暴力数学

    GT and numbers 问题描述 给出两个数NN和MM. NN每次可以乘上一个自己的因数变成新的NN. 求最初的NN到MM至少需要几步. 如果永远也到不了输出-1−1. 输入描述 第一行读入一个 ...

  8. Linux下的ssh实验环境搭建与管理

    实验环境[size=10.5000pt]1:网桥模式[size=10.5000pt]2:安装好vmtoos[size=10.5000pt]3:安装好yum[size=10.5000pt]4:安装好ss ...

  9. Consider using EXISTS instead of IN

    redgate给出的提示 https://documentation.red-gate.com/codeanalysis/performance-rules/pe019 In theory, EXIS ...

  10. lightbox2

    http://lokeshdhakar.com/projects/lightbox2/ 简单的demo <html> <head id="head"> &l ...