ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

tp6 加 微信小程序获取opendid (附带源代码)

2021-06-02 13:00:12  阅读:179  来源: 互联网

标签:code opendid addUser url 微信 res curl 源代码 data


微信开发者工具近期调整了 微信授权登录    那么新版的授权登录该怎么写?   

 

微信小程序页面

<button bind:tap="getUserProfile">授权</button>
微信小程序js代码

Page({
 
    /**
     * 页面的初始数据
     */
    data: {
        userInfo: {},
        hasUserInfo: false,
        avatarUrl: '',
        nickname: '',
    },
    getUserProfile(e) {
        wx.getUserProfile({
            desc: '用于完善用户信息',
            success: (res) => {
                // console.log(res.userInfo)
                // 获取code码
                this.setData({
                    userInfo: res.userInfo,
                    nick_name: res.userInfo.nickName,
                    avatarUrl: res.userInfo.avatarUrl,
                    hasUserInfo: true
                })
                wx.login({
                    success: (res) => {
                        let code = res.code;
                        var userInfo = this.data.userInfo
                        var nickname = this.data.nick_name
                        var url = this.data.avatarUrl
                        // console.log(nickname);
                        if (code) {
                            wx.request({
                                url: 'http://www.gj.com/Api', //开发者服务器接口地址",
                                data: {
                                    code: code,
                                    nickname: nickname,
                                    url: url
                                }, //请求的参数",
                                method: 'POST',
                                dataType: 'json', //如果设为json,会尝试对返回
                                success: res => {
                                    console.log(res.data.data);
                                    if (res.data.code == 200) {
                                        wx.setStorageSync('token', res.data.data, 7200 - 60);
                                        wx.switchTab({
                                            url: '/pages/one/one'
                                        })//登录成功跳转底部选项卡我的页面
 
                                    }
                                },
                            });
                        }
                    }
                })
 
            },
        })
    },
 
})
后台接口代码

public function save()
    {
        // 接值
        $data = input();
        //调用封装的小程序请求
        $result = getWx($data);
        // 拼接需要添加搭配用户表的数据
        $addUser['session_key'] = $result['session_key'];
        $addUser['openid'] = $result['openid'];
        $addUser['name_nick']=$data['nickname'];
        $addUser['url'] = $data['url'];
        
 
        // 根据opecID 查看用户表是否有这个用户
        $userRes = UserModel::getOneUserData($addUser['openid']);
        //没有用户  添加用户信息到数据库
       if (!isset($userRes['u_id'])) {
           $addUserRes = UserModel::addUser($addUser);
        
       }
        //  生成token  返回小程序
       $token = md5($addUser['openid']);
        //  将token 存入session
        session($token,$addUser);
        return json(['code'=>200,'msg'=>'登录成功','data'=>$token]);
 
    
    }
封装的小程序请求

<?php
// 应用公共文件
 function getWx($data)
{
        $APPID = "你的小程序APPID ";
        $SECRET = "你的SECRET ";
        // 拼接url
        $url = "https://api.weixin.qq.com/sns/jscode2session?appid={$APPID}&secret={$SECRET}&js_code={$data['code']}&grant_type=authorization_code";
 
        $curl = curl_init(); // 启动一个CURL会话
 
        curl_setopt($curl, CURLOPT_URL, $url);
 
        curl_setopt($curl, CURLOPT_HEADER, 0);
 
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
 
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);  // 从证书中检查SSL加密算法是否存在
        $tmpInfo = curl_exec($curl);     //返回api的json对象
        //关闭URL请求
        curl_close($curl);
        $result = json_decode($tmpInfo, true);
        
        return $result;
}
 

标签:code,opendid,addUser,url,微信,res,curl,源代码,data
来源: https://blog.csdn.net/lh25946/article/details/117464528

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有