微信小程序与php后端交互_微信小程序数据库放哪

微信小程序与php后端交互_微信小程序数据库放哪这里简单介绍用php后台实现获取openid并保存到数据库;微信的登陆流程是这样的首先前端发送请求到服务器:wx.login({success:function(res){varcode=res.code;//发送给服务器的codewx.getUserInfo({success:function(res){varuserNick=res.userInfo.nickName;…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

这里简单介绍用php后台实现获取openid并保存到数据库;

微信的登陆流程是这样的

607ee5c5601fc300550938c71fd215ed.png

首先前端发送请求到服务器:

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());

}

}

?>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192503.html原文链接:https://javaforall.net

(0)
上一篇 2025年12月13日 下午8:22
下一篇 2025年12月13日 下午9:01


相关推荐

  • 讯飞星火 X1 全新升级,整体效果对标 OpenAI o1 和 DeepSeek R1

    讯飞星火 X1 全新升级,整体效果对标 OpenAI o1 和 DeepSeek R1

    2026年3月14日
    2
  • 【已解决】Win10系统点击ikbc机械键盘win键无效的解决方法

    【已解决】Win10系统点击ikbc机械键盘win键无效的解决方法一、问题描述今天周一,早上一来上班,打开电脑操作一段时间后,我想按Win+L来锁屏,发现win键按了没有任何反应,只响应了L键。设备信息描述一下:系统:Windows10键盘:ikbc怎么解决它呢?二、解决问题ikbc键盘win按键失灵问题。其实是自己不小心把win键给锁定了。下面是介绍一下ikbc键盘上,锁定win键和解锁win键的方法,如下表所示:键盘款式锁定的方法解锁的方法非静音款Fn+左WinFn+右Win静音款Fn+F12F

    2022年6月1日
    152
  • CSV乱码转换

    CSV乱码转换1 右键 CSV 文件 用文本工具打开 例如 notepad 2 文本设置下编码格式 例 udf 8 保存 3 最后再打开 CSV 编码格式就是正确的了 1 2 设置编码格式保存 3 再次打开乱码就不存在

    2026年3月20日
    2
  • hive安装需要安装mysql区别_Hive安装

    hive安装需要安装mysql区别_Hive安装一 Hive 安装环境装备安装 JDK 安装 hadoop 集群二 下载 Hive 安装包根据需要下载相应的版本 这里以 hive 1 2 2 为例 三 Hive 安装包解压 1 根据 hadoop 集群的系统资源消耗情况 选择进程消耗比较小的进行安装 这里以 node2 节点为例 hive 安装包通过 xshell 中的 xftp 工具上传到 node2 上 2 解压 hive 安装包 1 把 hive 的压缩安装包解压到 opt bigdata

    2026年3月19日
    2
  • 后 AI 时代 Agent 智能体的行业赋能路径探索与平台化解决方案前瞻

    后 AI 时代 Agent 智能体的行业赋能路径探索与平台化解决方案前瞻

    2026年3月16日
    1
  • Scala Implicit 详解

    Scala Implicit 详解Implicit 是 Scala 中一个很重要的特性 开始学习 Scala 之前一直以为它和 Java 差不多 然而真的看一些 Scala 的源码时却发现并没有想象中那么简单 所以准备写几篇文章来详解 Scala 中异于 Java 的特性 就从 Implicit 开始吧 在我看来 Implicit 做的事情也是 Scala 主要做的事情 那就是代码压缩 减少模块代码 talkischea

    2026年3月18日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号