前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序与php后端交互_微信小程序数据库放哪

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

作者头像
全栈程序员站长
发布2022-09-30 20:30:05
4.1K0
发布2022-09-30 20:30:05
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

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

微信的登陆流程是这样的

607ee5c5601fc300550938c71fd215ed.png
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=’ .

//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,

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.cn/192503.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月17日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档