微信公众号开发_如何获取用户信息?

如何获取用户信息?

sence:

1)有微信服务认证号,并已开通功能:网页服务>>网页账号>>网页授权获取用户基本信息

2)设置:网页授权获取用户基本信息 后面的 修改 ,设置成 www.jianshu.com [注脚1]

3)用户已经关注公众号

实现功能:获取用户信息userinfo.

THINK:

网页授权获取用户基本信息

具体而言,网页授权流程分为四步:

1、引导用户进入授权页面同意授权,获取code

2、通过code换取网页授权access_token(与基础支持中的access_token不同)

3、如果需要,开发者可以刷新网页授权access_token,避免过期 [先略过]

4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

简介

1、引导用户进入授权页面同意授权,获取code

code<=appid,redirect_uri*与后台设置需要一致*,scope*snsapi_base*

url:https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=$scope&state=1#wechat_redirect

2、通过code换取网页授权access_token(与基础支持中的access_token不同)

access_token,openid<=appid,secret,code,

url:https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code

3、如果需要,开发者可以刷新网页授权access_token,避免过期 [先略过]

4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

userinfo<=access_token,openid

url:https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN

CODING

<?php
/**
 * 微信接口获取/code/access_token/userinfo测试
 * 1、引导用户进入授权页面同意授权,获取code
 * 2、通过code换取网页授权access_token,openid(与基础支持中的access_token不同)
 * 3、通过网页授权access_token和openid获取用户基本信息userinfo(支持UnionID机制)
 */

    $appid = "wxb0ecfdea8055XXXX";
    $secret = "102c519025101e19d74fa4c884b4XXXX";
    $redirect_uri = "http://m.XXXX.com/xxxx.php";
    $scope = "snsapi_base";

/*1、引导用户进入授权页面同意授权,获取code*/
/*code <= appid,redirect_uri[与后台设置需要一致],scope[snsapi_base]*/
    $url_code = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=$scope&state=1#wechat_redirect";
    if(empty($_GET['code'])){
        //跳转到$url_code,会带一个code参数跳转回来
        header("Location:$url_code");
    }else{
        $code = $_GET['code'];
    }
/*2、通过code换取网页授权access_token,openid(与基础支持中的access_token不同)*/
/*access_token,openid <= appid,secret,code*/
    $url_access_token = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
    $json_access_token = file_get_contents($url_access_token);
    $arr_access_token = json_decode($json_access_token,TRUE);
    $access_token = $arr_access_token['access_token'];
    $openid = $arr_access_token['openid'];
/*3、通过网页授权access_token和openid获取用户基本信息userinfo(支持UnionID机制)*/
/*userinfo <= access_token,openid*/
    $url_userinfo = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
    $json_userinfo = file_get_contents($url_userinfo);
    $arr_userinfo = json_decode($json_userinfo,TRUE);
/*
    arr_userinfo返回值:
    ["openid"]=>"oy3SMtwGXXXXnuLr7hr2l4"
    ["nickname"]=>"天天天晴_2014"
    ["sex"]=>int(1)
    ["language"]=>"zh_CN"
    ["city"]=>"东莞"
    ["province"]=>"广东"
    ["country"]=>"中国"
    ["headimgurl"]=>"http://wx.qlogo.cn/mmopen/SicNOemw9NjtgucsSTVDia1ktXXXX0qvibu057GkvUtFThKAKzb9zgYzOXQlNcD4ZTBCvGXXcibrehSEiceNWwicNJEXXrfrJicVg/0"
    ["privilege"]=>array(0) {}
*/
?>

参考:

微信_公众平台开发者文档:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html

时间: 2024-08-25 10:41:19

微信公众号开发_如何获取用户信息?的相关文章

微信公众号开发纪要(3)-获取用户openid

项目要求做扫描功能前需要进行用户绑定,不是所有的用户都能盘点扫描.这就要求先获取用户的openid(微信公众号的用户唯一凭证),然后与业务系统的用户信息进行验证和绑定.如何获取用户的openid在开发指引中,微信网页授权章节里,做了详细的介绍.获取用户信息,需要四步. 第一步:用户同意授权,获取code第二步:通过code换取网页授权access_token第三步:刷新access_token(如果需要)第四步:拉取用户信息(需scope为 snsapi_userinfo) 1:用户同意授权,获

微信公众号开发(二)用户关注

微信公众号开发之用户关注   前面讲了基本配置,如果配置成功,那么现在就进入我们的微信公众号开发之旅吧! 这个旅程应该从哪里开始比较好呢?想想....首先说用户关注吧 !毕竟这是入口. 用户关注公众号可以通过三种方式: 1.扫公众号的二维码 2.搜索公众号的名称 3.扫带参数的二维码,但是第一个用户只能通过前面两种方式关注. 一.扫公众号的二维码 用户扫了二维码之后,点击关注,微信服务器会向我们的服务器发送一串数据(对象形式): reqMap:{ FromUserName:xx, EventKe

微信公众号网页授权登录获取用户基本信息

发布时间:2018-10-24 技术:spring springboot,微信公众号 概述 微信公众号网页授权登录后微信获取用户基本信息,部署即可运行完整demo 详细 代码下载:http://www.demodashi.com/demo/14290.html 一.前言 (1)适合人群 1,JAVA服务端开发人员 2,初级人员开发人员 3,了解spring springboot + maven 3,了解公众号开发 (2)你需要准备什么? 1,积极主动学习 2,微信公众号开发基本流程 3,java

微信公众号开发_如何接入微信支付?[网页发起支付]

开发背景 在微信公众号中,需要获取支付功能 前提 公众号已经开通支付功能[未开通的自行百度] 实现步骤 接入JSSDK JSSDK使用步骤 参考微信JS-SDK说明文档 使用JSSDK中的 微信支付 API wx.chooseWXPay({ timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写.但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 nonceStr: 'abc', // 支付签名随机串,不长于 32

C#微信公众号开发 -- (三)用户关注之后自动回复

通过了上一篇文章之后的微信开发者验证之后,我们就可以做微信公众号的代码开发了. 当我们点击关注某个公众号的时候,有时候会发现他会自动给我们回复一条消息,比如欢迎关注XXX公众号.这个功能其实是在点击关注的时候,用户触发了微信定义的事件,同时微信会返回给我们一个XML数据包,微信官方的解释如下: 推送XML数据包示例: <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName>&

微信公众平台开发(106) 网页获取用户地理位置

关键字:微信公众平台 JSSDK 获取地理位置接口 网页获取用户地理位置 getLocation作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-web-location.html 在这篇微信公众平台开发教程中,我们将介绍如何在网页中获取用户的地理位置信息. 本文分为以下二个部分: 生成JS-SDK权限验证签名 使用地理位置接口获取坐标 一.微信JS-SDK 1. 获得Access Token access token的获得方法在前面有介绍,

C#微信公众号开发——access_token的获取

access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效. 公众号可以使用AppID和AppSecret调用本接口来获取access_token.AppID和AppSecret可在微信公众平台官网-开发者中心页中获得(需要已经成为开发者,且帐号没有异常状态).注意调用所有微信接口时均需使用https协议. 一.获取access_token ///

微信公众号开发及时获取当前用户Openid及注意事项

目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 (四)微信公众号开发之网页授权获取用户基本信息 (五)微信公众号开发之网页中及时获取当前用户Openid及注意事项 前言 这篇主要是承接上篇的网页授权获取用户基本信息的后文,也是对第一种静默授权之后,用户点击公众号内链接时,如何再次取得当前用户的OpenId的大致讲解和一些注意事项. 看过上一篇的小伙伴都知道,我们在用户关注的时候就已经将该用户的基本信息存入数据库中,那么如果

C#微信公众号开发之网页授权oauth2.0获取用户基本信息(二)

C#微信公众号开发之网页授权oauth2.0获取用户基本信息(一) 中讲解了如果通过微信授权2.0snsapi_base获取已经关注用户的基本信息,然而很多情况下我们经常需要获取非关注用户的信息,方法如下: 第一步和之前讲的一样:获取code,但是scope使用方法是snsapi_userinfo; 第二步,根据code获取openid和access_token(此处的access_token是通过网页授权code换取的不是我们之前讲的全局的票据),代码: 1 /// <summary> 2