轻源码

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 终极进阶 查看主题

小程序微信登录+页面跳转数据交互

发布者: chaosleg | 发布时间: 2018-4-19 15:18| 查看数: 5049| 评论数: 1|帖子模式

作者:周起 
一:小程序登录 
1.在小程序全局js app.js文件中,调用小程序微信登录接口

将小程序获取到用户的code POST方式发送到服务器端

  1. //调用登录接口
  2. wx.login({
  3. success:function(res){
  4. console.log(res)
  5. if(res.code){
  6. //存在code
  7. wx.request({
  8. url:',
  9. data: {code:res.code},
  10. method:'POST',
  11. header: {
  12. "content-type": "application/x-www-form-urlencoded"
  13. },
  14. success: function(res){
  15. that.globalData.userId = res.data.info
  16. },
  17. fail: function() {
  18. console.log('服务器请求失败!')
  19. },
  20. })
  21. }else{
  22. console.log('获取用户信息失败!'+res.errMsg)
  23. }
  24. }
  25. })

调用接口成功以后打印出接口对象,可以得到如下信息

这里的code,有效时间是5分钟,需要将这个code发送到服务器,用code换取session_key API,将code换成OPENID和session_key

2.在服务器端将带有appid、secret、js_code、grant_type数据,发送到微信服务器,换取session_key和openid

  1. https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

这里JSCODE就是放置code的地方

3.服务器端代码

  1. public function saveOpenId(){
  2. if (IS_POST) {
  3. $code = I('post.code');
  4. if($code){
  5. $url = "".$code."&grant_type=authorization_code";
  6. $res = file_get_contents($url); //获取文件内容或获取网络请求的内容
  7. $result = json_decode($res);
  8. if($result->openid){
  9. $openid = $result->openid;
  10. $user = D('user');
  11. $userInfo = $user->where(array('openid'=>$openid))->find();
  12. if(!$userInfo){
  13. $data['openid'] = $openid;
  14. $data['modifytime'] = date("Y-m-d H:i:s");
  15. $userId = $user->add($data);
  16. $this->success($userId,'',true);
  17. }else{
  18. $this->success($userInfo['id'],'',true);
  19. }
  20. }
  21. }
  22. }

流程:发送带有codeURL,获取网页内容,判断openid是否存在,存在就将用户ID返回,不存在就添加用户然后将ID返回。

wx.login成功获取了用户ID,再把这个ID赋值给全局变量,UserId

二:页面跳转数据交互 
页面携带参数跳转,处理参数

  1. <navigator url="../index/index?id=1&name=zhouqi&work=php">跳转</navigator>

这里是普通的跳转,相当于HTML的a

参数形式key=value&key2=value2

这里是跳转到index/index页面

参数是

id = 1 name = zhouqi work = php

在index页面的js中

  1. Page({
  2. data: {},
  3. onLoad:function(options){
  4. console.log(options)
  5. wx.request({
  6. url: ',
  7. data: {id:options.id,name:options.name,work:options.work},
  8. success: function(res){
  9. console.log(res)
  10. },
  11. })

option有携带过来的参数情况

这样就可以得到携带过来的参数

可以通过wx.request对服务器进行请求获取数据或者其他操作

服务器端返回的数据

服务器端代码

最新评论

luke 发表于 2022-6-9 20:21
下载的源代码怎么用

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表