• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

小程序获取unionid

php 搞代码 3年前 (2022-03-01) 62次浏览 已收录 0个评论

公众号和小程序绑定微信开放平台

微信开放平台需要认证(300)

然后进行相关的绑定,绑定时需要相关账号的原始管理者进行扫码绑定

小程序也是一样操作

小程序获取unionID

<button hidden="{{is_login}}" class='bottom' type='primary' open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo" style='width:100px'>
          登录</button>
bindGetUserInfo: function (e) {
    if (e.detail.userInfo) {
      //用户按了允许授权按钮
      var that = this;
      //插入登录的用户的相关信息到数据库
      var openid = getApp().globalData.openid;
      var session = getApp().globalData.session
      getApp().globalData.userInfo = e.detail.userInfo;
      //通过wx.login获取code  想要获取用户信息,必须登录
      wx.login({
        success:  function(res){
          if(res.code){
                  var code = res.code;
                  // 获取 encryptedData  iv
                  wx.getUserInfo({
                    withCredentials: true,
                    success: function(res2){
                      //请求自己的登录接口
                        wx.request({
                          url: config.api_base_url + 'login',
                          data: {
                            userinfo: e.detail.userInfo,
                            openid: openid,
                            encryptedData:res2.encryptedData,
                            iv:res2.iv,
                            session:session
                          },
                          header: {
                            'content-type': 'application/json' // 默认值
                          },
                          method: 'post',
                          success(res) {
                            if (res.data.result == 1) {
                              wx.setStorageSync('user', res.data.msg);
                              that.onLoad();
                              that.setData({
                                is_login:true
                              })
                              
                            } else {
                              console.log("写入失败")
                            }
                          }
                        })
                    }
                  })
          }else{
            console.log('获取用户登录态失败!'+res.errMsg);
          }
        }
      })
      
    return ;
      
      //授权成功后,跳转进入小程序首页
    } else {
      //用户按了拒绝按钮
      wx.showModal({
        title: '警告',
        content: '您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!',
        showCancel: false,
        confirmText: '返回授权',
        success: function (res) {
          if (res.confirm) {
            console.log('用户点击了“返回授权”')
          }
        }
      })
    }
  },
后端
这里使用的tp5.1+easywechat4
use EasyWeChat\Factory;
$miniProgram = Factory::miniProgram($this->config);
$decryptedData = $miniProgram->encryptor->decryptData($userinfo['session'],$userinfo['iv'],$userinfo['encryptedData']);
$data['unionid']= $decryptedData['unionId'];
      
      

高颜值后台管理系统免费使用 ### 子枫后台管理系统 ###,可在宝塔面板直接安装

欢迎关注我的公众号:子枫的奇妙世界,获得独家整理的学习资源和日常干货推送。
如果您对我的其他专题内容感兴趣,直达我的个人博客:www.wangmingchang.com 。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:小程序获取unionid
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址