这里简单介绍用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代码:

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和mysql_微信小程序php后台实现相关推荐

  1. ip地址转换数字函数 iton_c# – RabbitMQ CreateConneciton问题 – 在一个应用程序中运行,但在另一个应用程序中运行...

    所以这是连接代码. var factory = new ConnectionFactory { HostName = "myserver", UserName = "te ...

  2. 定义分数类中和运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。

    /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作    者:李德彪 *完成时间:2016年6月15日 * ...

  3. 微信小程序中如何使用数据库_如何在程序中使用数据库

    微信小程序中如何使用数据库 如何在程序中使用数据库 许多.NET解决方案都是数据库驱动的,因此我们很多人常常想知道如何访问数据库. 为了帮助您理解该问题的答案,我提供了以下示例,作为如何从数据库检索数 ...

  4. 小程序中纯CSS实现仿京东小优惠券图标

    效果图: image.png 通常情况下可以用图片做背景图实现,但是,背景图如果用png,会出现被拉伸变形的问题,如果用svg会有兼容问题,同时也有被拉伸变形的问题,仔细分析,这个图标其实是一个圆角矩 ...

  5. python猜数游戏在程序中预设一个_一道Python简单程序结构练习题

    1.猜数游戏. 在程序中预设一个0~9之间的整数,让用户通过键盘输入所猜数字,如果大于预设的数, 显示"遗憾,太大了":如果小于预设的数,显示"遗憾,太小了": ...

  6. java在程序中加入音频_在任意Java程序中播放音频

    音频文件有多种格式.Java程序能够播放WAV,AIFF,MIDI,AU和RMF格式的声音文件. 要在Java中播放音频文件,应该先为声音文件创建一个音频剪辑对象(audio clip object) ...

  7. 编译c语言程序时 程序中的注释部分将,C语言程序编译时,程序中的注释部分将 答案:不参加编译,也不会出现在目标程序中...

    相关问题 在普通视图中,需打开"插入"菜单,单击"脚注"或"尾注",打开一注释内容编辑区, 才能查看和编辑注释内容: 视图 中 菜单 脚注 ...

  8. 程序中 设置jvm 参数_高效应用程序的7个JVM参数

    程序中 设置jvm 参数 在撰写本文时(2020年3月),围绕垃圾收集和内存,您可以将600多个参数传递给JVM. 如果您包括其他方面,则JVM参数总数将很容易超过1000个.

  9. 微信公众号中的支付宝支付与微信支付 支付宝支付问题(微信bug)

    一般,在微信公众号中的商城都是需要支持微信支付和支付宝支付的,当然,较大的公司对于鹅厂和阿里的站队就不说了,所以这里简单记录一下支付宝支付和微信支付的主要流程.说是简单介绍,这是因为确实不难,因为前端 ...

最新文章

  1. 智能实验室-杀马(Defendio) 4.16.0.840
  2. Google BigQuery——企业级大数据分析工具
  3. CDN 内容分发网络 简介
  4. leetcode 214. Shortest Palindrome | 214. 最短回文串(Java)
  5. 缩减oracle日志,[20180829]减少日志生成量.txt
  6. Kafka和其他消息队列
  7. redis缓存雪崩、缓存穿透和缓存击穿等总结
  8. Js 获取屏幕坐标值
  9. 如何在命令行更改IP地址
  10. 一大早,分享一个好消息
  11. Dreamweaver网页课设做家乡网站
  12. @DependsOn
  13. 用idea使用struts和hibernate来实现CRUB的操作
  14. 南海滩饮食法——不饿的情况下快速减肥的法宝
  15. 几个维度带你了解什么是聚合支付
  16. ​【汇总】CV 图像分类常见的 36 个模型
  17. android x86 驱动精灵,手机驱动精灵软件下载(5个步骤即可解决)
  18. flv f4v mp4 视频播放器代码
  19. 【Unity】模拟果冻效果(有碰撞)——JellySprites插件使用教程
  20. Suzy找到实习了吗Day 17 | 二叉树进行中:110. 平衡二叉树,257 二叉树的所有路径,404. 左叶子之和

热门文章

  1. OPA进阶-简洁的推导式comprehensions
  2. 中国采购行业出现W形复苏迹象
  3. 计算机和学生的关系的英语作文,学生和老师的关系的英文作文
  4. 互联网医院 2020年突出成就_我省2020年互联网企业20强榜单出炉
  5. SAS、scsi、sata、ide硬盘有什么区别
  6. ubuntu安装与卸载搜狗输入法
  7. html测验小题目(来源于W3School)
  8. android 闹钟运行原理,简单 闹钟 实现 原理
  9. shineblink 倾倒传感器详解
  10. PostgreSQL 儒略历学习资料