前提:现在微信小程序登录我参考了几个大的公司的登录,基本分下面几种

1、微信用户一键登录,授权用户基本信息,不获取手机号

2、微信手机号一键登录,根据手机号去关联在其他平台数据,用手机号关联。然后再调取用户的基本信息,需要授权。有的不调取用户基本信息,直接用默认的昵称和头像

3、在一个就是先获取微信的用户基本信息,然后再获取手机号,如果不能获取到手机号的话,获取用户的微信没绑定手机号,或者拒绝授权手机号,就不让登录。

我用的是先获取手机号,然后再获取用户的基本信息

PHP代码

/*
     * 微信用户登录接口
     * code   前端传递的
     * iv 前端传递的 
     * encryptedData  前端传递的
     */
public function Wx(){

// 接收参数
        // 引入解密文件 在微信小程序开发文档下载--我的是放在vendor下,直接用vendor引入,你可以选择放别的目录,

//然后require 我这里一开始下载的两个解密文件不可以,因为wxBizDataCrypt  文件和文件里面class 命名大小写不一样,导致

//类找不到,注意一下这里

        Vendor('wx.wxBizDataCrypt');
        Vendor('wx.errorCode');

$appid = 'XXX'; //小程序的appid
        $appsecret = 'XXX'; //小程序的appsecret
        $grant_type = "authorization_code"; //授权(必填)
        $code = I('code');    //有效期5分钟 登录会话

$encryptedData = I('encryptedData');
        $iv = I('iv');

WAxrMxiLHSIvwMAhrqPpplnm7e+F0aX4wQXjNOb3T93froRjoVK+Budvt2Gc/GUmczmBY//4eZhmLEq4PSwe5JX9xTPdfOg==';
        // 拼接url
        $url = "https://api.weixin.qq.com/sns/jscode2session?"."appid=".$appid."&secret=".$appsecret."&js_code=".$code."&grant_type=".$grant_type;
        $res = json_decode($this->httpGet($url),true);
        $sessionKey = $res['session_key']; //取出json里对应的值

// 获取解密后的数据
        $pc = new \WXBizDataCrypt($appid, $sessionKey);
        $errCode = $pc->decryptData($encryptedData, $iv, $data );

$data = json_decode($data,true);//获得用户信息

if ($errCode == 0) {

//查询这个手机号是否注册过
            $mobile = $data['purePhoneNumber'];

$return['code'] = 200;
        } else {
            $return['code'] = 100;

}

echo json_encode($return);die;

}

//用到的curl封装函数

public function httpGet($url) {$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);return $res;
}

//返回值

//这个里面的type和uid 是我根据手机号匹配我自己数据库拿到的,openid 是微信小程序给我的

{"data":{"openid":"o1vmX5CSKl1j6tz4Xq9trXrLoZ6Y","type":0,"uid":"33822"},"code":200}

这里就不贴前端代码了,百度有一堆

微信小程序手机号一键登录--获取用户手机号--微信小程序一键登录相关推荐

  1. springboot小程序授权登录获取用户手机号

    controller: /*** 授权获取用户手机号** @param mobile* @param type* @return*/@PostMapping("/getPhone" ...

  2. asp微信登陆源码,实现asp网站授权微信登录(获取用户信息,微信名头像openid等)

    一个同学的网站想实现asp微信登陆,获取到微信用户资料信息,微信昵称,微信头像,微信openid等信息保存到数据库,我给他了一份asp微信登录授权(获取用户信息)源码,他说不会用,让我帮忙写好入库,并 ...

  3. 【微信小程序】获取用户手机号的实现

    0 说明 本文,是纯前端实现微信小程序获取用户手机号的实现方法总结,并给出了相应的注意点与优化点说明. (注意:获取用户手机号,需要用已通过企业认证的小程序账号) 0.1 为什么要写这篇文章? 1.记 ...

  4. 微信小程序中如何获取用户手机号授权登录

    随着微信小程序的普及,许多应用程序需要用户登录才能提供更好的服务.而获取用户手机号码是验证用户身份和确保账户安全的重要步骤之一.因此,在本文中,我们将介绍如何在微信小程序中实现手机号授权登录. 步骤一 ...

  5. 微信小程序:登录授权,根据手机号获取凭证,获取用户手机号

    1.微信小程序授权 controller 层代码 @Autowiredprivate WxUtils wxUtils;//小程序 授权@RequestMapping(value = "/wx ...

  6. 微信小程序——按钮登录获取用户头像昵称、不需要获取权限就能显示头像和昵称、获取手机号(云端)

    1.登录获取用户头像昵称 代码 app.js App({globalData: {userInfo: null},onLaunch() {} }) . . . index.js const app = ...

  7. 微信小程序python解析获取用户手机号_微信小程序获取用户手机号详解

    最近在做一款微信小程序,需要获取用户手机号,具体步骤如下: 流程图: 1.首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话 ...

  8. 微信小程序python解析获取用户手机号_微信小程序如何获取用户手机号

    最近在做一款微信小程序,需要获取用户手机号,具体步骤如下: 流程图: 1.首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话 ...

  9. 微信小程序获取用户手机号存数据库,前后端都有《Java后台版 》

    开发这个功能的时候走了很多弯路磨了很多时间,我发一下我自己用的来帮助大家 流程图 前端 index.wxml <view>我的首页内容</view><button cla ...

最新文章

  1. TCP/IP、SOCKET、HTTP之间的联系与区别
  2. 无法定位软件包_使用Degraph管理软件包依赖关系
  3. r语言和python-r语言和python学哪个?
  4. 一篇文章解释struts常用功能
  5. python根据uuid去重,获取请求重各种动作的次数
  6. scala-协变、逆变、上界、下界
  7. zencart手工备份mysql数据库_MySQL数据库镜像 / 实时备份Zen Cart数据库
  8. NFine.Framework框架去除cookie后门方法
  9. 小米笔记本Pro15寸单系统黑果体验
  10. HTML页面点击下载文件的简单实现方法
  11. CentOS7.5部署WeADMIN监控主机交换机配置[详解]
  12. 如何注册登录Google浏览器
  13. visio流程图工具安装包的下载和安装教程
  14. Neo4j 查询语法入门
  15. 从三大行业看大数据应用的三重境界:数据、分析、成果
  16. cnpm报错 : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本
  17. 5G智能灯杆和智慧合杆的区别和功能介绍
  18. 站在集成平台的角度去看待医院系统的查询需求
  19. C#常用函数和方法集汇总
  20. 用户解锁不存在_在“变与不变”中完成蜕变 观手机解锁发展史 探索未来

热门文章

  1. JAVA毕业设计海城同泽中学图书仓库管理系统计算机源码+lw文档+系统+调试部署+数据库
  2. 解决项目中出现问题 Cannot resolve com.xpand:starter-canal:0.0.1-SNAPSHOT
  3. MultipartFile和File互转工具类
  4. Trucksim横纵坡场景搭建
  5. 在Excel表格中输入0开头的数字,调整Excel工作表显示比例。
  6. 头条号如何快速涨100W+粉丝?
  7. 压力测试技术策略总结(入门篇)
  8. gluPerspective函数和glOrtho函数的具体用法
  9. linux音频服务器,mStream - Linux下搭建可随时随地传输音乐的个人流媒体服务器
  10. 滴滴AR实景导航背后的技术