专栏首页陶士涵的菜地[小程序]微信小程序登陆并获取用户信息

[小程序]微信小程序登陆并获取用户信息

1.小程序js端调用框架登陆API,获取到一个临时code,拿着这个code去调用自己的服务端接口

2.在自己的服务器端,使用app_id app_secrect code可以获取到用户的openid,这个id是用户唯一的id并且不会改变,可以把这个id返回给小程序端 小程序端本地保存openid

3.获取用户信息很简单,并且不需要自己的服务器处理,只需要小程序端提供的API。 前端页面wxml使用一个按钮,按钮里增加几个属性,就可以回调到小程序js部分的方法上,并且带着用户的个人信息,如昵称 头像等

4.这个时候就可以把该用户的openid 和 昵称,头像,一块调用自己服务端接口,保存到数据库中

index.js

const app = getApp()

Page({
  data: {
    openid:""
  },
  //按钮回调的方法
  getPerson:function(e){
    console.log(this.data.openid);
    console.log(e);
  },
  onLoad: function () {
    var self=this;
    wx.login({
      success(res) {
        //js调用登陆命令获取到code
        if (res.code) {
          //通过code调用自己服务接口获取到openid
          wx.request({
            url: 'https://api.sopans.com/third/wxOpenId.php',
            data: {
              code: res.code
            },
            success:function(wxInfo){
              console.log(wxInfo);
              self.data.openid = wxInfo.data.openid
            }
          })
        } else {
          console.log('登录失败!' + res.errMsg)
        }
      }
    })
  },
})

index.wxml

<button open-type="getUserInfo" bindgetuserinfo="getPerson">获取用户信息</button>
        $appid = ''; // 小程序APPID
        $secret = ''; // 小程序secret
        $code=$_GET['code'];
        $url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' . $appid . '&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code';    
            
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 500);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_URL, $url);
        $res = curl_exec($curl);
        curl_close($curl);
        
        echo $res; // 这里是获取到的信息

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [android] activity的生命周期

    在这些方法里面打印log日志,为了方便查看在filter里面增加一个System.out来过滤

    陶士涵
  • [android] 帧布局

    /*******************2016年5月3日 更新**************************************/

    陶士涵
  • [android] 利用广播实现ip拨号

    广播接收者,broadcast receiver,安卓系统在使用时会产生很多的事件,比如:短信到来,电量低,拨打电话等等

    陶士涵
  • Web持续集成工作实践

    摘要 如果团队开发成员经常集成他们的工作,每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建来验证,从而尽快地发现集成错误。...

    IT大咖说
  • PHP中的数据采集传输神器-cURL库

    cURL库是一个非常强大的开源库,支持很多协议,包括HTTP、FTP、TELNET等,在微信开发、支付、第三方登录中,我们使用它来发送请求

    沈唁
  • “curl -k”对应的 C++代码

    对于“https”,使用curl时可加参数“-k”,它对应的 C/C++ 代码如下:

    一见
  • Apache 绿色版本官方版本下载

    在网上搜了一圈,没有找到合适的精简Apache绿色版本,都要收取C币。 记录一下怎么在官网找到编译好的 windows 绿色版本,即加压即可用。

    叉叉敌
  • mysql常用配置注意项与sql优化

    肖哥哥
  • 吃鱼小游戏,可以让小朋友练习键盘方向键和鼠标,采用javafx框架tornadofx实现

    用户6167008
  • Elasticsearch 开箱指南

    Elasticsearch (ES) 是一个数据库,提供了分布式的、准实时搜索和分析。

    dys

扫码关注云+社区

领取腾讯云代金券