我的编程空间,编程开发者的网络收藏夹
学习永远不晚

公众号和小程序获取用户信息及获取手机号

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

公众号和小程序获取用户信息及获取手机号

公众号的获取用户信息
前端传code,后端根据code获取用户信息
代码:

$code = $this->request->param('code');//通过下面url获取access_t和 openid$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . getConfig('app_id') . '&secret=' . getConfig('app_secret') . '&code=' . $code . '&grant_type=authorization_code';//静默授权和非静默授权需要注意区分$data = json_decode($this->curl($url));if (empty($data)) {    apiResponse('0', 'code失效');}$access_token = $data->access_token;$openid = $data->openid;$get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";$userinfo = $this->getJson($get_user_info_url);//userinfo 里面就是用户信息了//引用的方法function curl($url) {    $curl = curl_init();    curl_setopt($curl, CURLOPT_URL, $url);    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);    $data = curl_exec($curl);    curl_close($curl);    return $data;}public function getJson($url) {    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    $output = curl_exec($ch);    curl_close($ch);    return json_decode($output, true);}

小程序获取用户信息
前端传iv,encryptedData,code,然后后端根据code获取session_key,再利用session_key,encryptedData及iv来获取用户信息
注意:前端wx.login获取code和获取用户信息的顺序
代码:(用的easyWeChat)

use EasyWeChat\Factory;$this->wx_config = [           'app_id' => getConfig('app_id'),           'secret' => getConfig('app_secret'),           'response_type' => 'array',     ];$iv = $this->request->post('iv');    $encryptedData = $this->request->post('encryptedData');    $code = $this->request->post('code');    if (empty($iv) || empty($encryptedData) || empty($code)) {        apiResponse('0', "参数缺失");    }    $app = Factory::miniProgram($this->wx_config);    $session_keys = $app->auth->session($code);    if (empty($session_keys['session_key'])) {        apiResponse('0', $session_keys['errmsg']);    }    $session_key = $session_keys['session_key'];    $openid = $session_keys['openid'];    $data = $app->encryptor->decryptData($session_key, $iv, $encryptedData);    //data就是获取到的用户信息了

小程序获取用户手机号
前端传code,后端根据code获取用户手机号
代码:

   $access_token = $this->get_access_token();   $url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" . $access_token;   $data = '{"code":"' . $params['code'] . '"}';   $result = curl_post($url, $data);   $result_arr = json_decode($result, true);   if ($result_arr['errcode'] == 0) {       apiResponse('0', '手机号获取失败');   }   //保存手机号   $result = Db::name('user')->where("uid", $user_id)->update(['mobile' => $result_arr['phone_info']['purePhoneNumber']]);//$result_arr['phone_info']['purePhoneNumber']是我想要的手机号  #获取access_token  public function get_access_token() {      $app_id = getConfig('app_id');      $secret = getConfig('app_secret');      $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $app_id . '&secret=' . $secret;      $result = file_get_contents($url);      $result = json_decode($result, true); //转为数组      return $result['access_token'];  }   function curlPost($url, $data){        $header = array(            'Content-Type: application/json; charset=utf-8',        );        $ch = curl_init();        curl_setopt($ch, CURLOPT_POST, 1);        curl_setopt($ch, CURLOPT_URL, $url);        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);        $response = curl_exec($ch);        curl_close($ch);        return $response;    }

来源地址:https://blog.csdn.net/zax_96/article/details/127007083

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

公众号和小程序获取用户信息及获取手机号

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

公众号和小程序获取用户信息及获取手机号

公众号的获取用户信息 前端传code,后端根据code获取用户信息 代码: $code = $this->request->param('code');//通过下面url获取access_t和 openid$url = 'https://a
2023-08-22

通过小程序获取公众号openid

需求: 由于小程序不能直接向用户发送模板消息,所以需要用公众号向用户发送模板消息。 于是需要将小程序的openid和公众号的openid绑定在一起。提供两种思路: 方法一: 1.微信小程序和公众号都绑定到微信开放平台上,这样小程序登录获取用
2023-08-16

【小程序】微信小程序如何获取微信公众号openid?

一图总览 大家可以先看看下面的流程图,来了解笔者想实现的功能,简单来说就是两个不同主体间的小程序与公众号该如何产生关联。 注:为什么这里要强调不同主体呢,因为同主体的小程序与公众号是可以通过unionId来进行关联绑定。 实现方案
2023-08-19

微信小程序用户如何授权获取手机号-getPhoneNumber

本篇内容主要讲解“微信小程序用户如何授权获取手机号-getPhoneNumber”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序用户如何授权获取手机号-getPhoneNumber”吧!
2023-06-13

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

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

微信小程序获取用户头像昵称手机号最新版

微信小程序获取用户头像昵称手机号最新版 1. 微信又双叒叕改了获取用户头像和昵称的接口 小程序用户头像昵称获取规则调整公告 这里我们通过uniapp的方式展示,通过弹窗的方式来实现用户登录授权、获取昵称、头像 第一次弹窗,获取用户手机号,做
2023-08-22

微信小程序怎么实现获取用户手机号码功能

本篇内容主要讲解“微信小程序怎么实现获取用户手机号码功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序怎么实现获取用户手机号码功能”吧!前言获取用户手机号码 分为以下几步:第一点击页面
2023-07-02

怎么用微信小程序getPhoneNumber快速获取用户手机号组件

本篇内容介绍了“怎么用微信小程序getPhoneNumber快速获取用户手机号组件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明获取微信
2023-06-26

微信小程序获取手机号报错getPhoneNumber:fail no permission

目录 一、问题描述二、解决方法 一、问题描述 微信小程序调用 API 获取手机号报错: getPhoneNumber:fail no permission 二、解决方法 小程序没有认证,需要对小程序进行微信认证。如果是复用公众
2023-08-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录