微信接口获取用户信息

必须的参数:appid和appSecret

①获取code

接口链接示例:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxbafc7fdf3664b600&redirect_uri=http%3a%2f%2f0708.pinzhi365.com%2findex_tb.html&response_type=code&scope=snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect

参数说明:

appid                服务号自带的值,为固定值

redirect_uri       回调的链接,在经过接口获取到了code之后,页面会跳转到此参数对应的链接上,且域名一定要对应服务号所配置的域              名

且该链接必须要经过urlencode

response_type  固定值

scope                固定值:snsapi_userinfo或snsapi_base(不弹出授权页面,只能获取用户openid)

state                  重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节

调用结果:

如果用户同意授权,页面将跳转至

http://0708.pinzhi365.com/index_tb.html?code=011bdbf34b5748203155ef831321b9af&state=STATE

------------------------------------------------------------------------------------------------------------

②通过code换取网页access_token

接口链接示例:

https://api.weixin.qq.com/sns/oauth2/access_token?

appid=wxbafc7fdf3664b600&secret=81f9832f79e858b247aa6a2d09d66341&code=011bdbf34b5748203155ef831321b9af&grant_type=authorization_code

参数说明:

appid                 同①

secret                 服务号自带,即appSecret,为固定值

code                  从①获取的值

grant_type         固定值

调用结果:

示例:

{

"access_token": "OezXcEiiBSKSxW0eoylIeByO7M0QcUqqAnU8rzQAkrRdZmwxk9aQoDf5WT5aSvx6wBenI2Jmz_jBs-025_piaJ81bvZrb9Q1oEPOPZq7RMQRZT2sBN3-mk6siHEeXIN9WD1ybSIfoHaITDowh1AN8Q",

"expires_in": 7200,

"refresh_token": "OezXcEiiBSKSxW0eoylIeByO7M0QcUqqAnU8rzQAkrRdZmwxk9aQoDf5WT5aSvx695Vnx345AXlPPDt50Fbl0zfUI5eTGht57oMtwLx_aMyjYF3Juj4AVA_VX0hltk10WL47Z3_v6BnKCD_o9v2S5Q",

"openid": "oAhzJs2lQRR6Dd1U95S1lrlMKjSE",

"scope": "snsapi_userinfo",

"unionid": "o_LdHt0WTwyrk41R2vcAs2v5XFQk"

}

------------------------------------------------------------------------------------------------------------

③通过access_token和openid获取用户信息

接口链接示例:

https://api.weixin.qq.com/sns/userinfo?access_token=OezXcEiiBSKSxW0eoylIeByO7M0QcUqqAnU8rzQAkrRdZmwxk9aQoDf5WT5aSvx6wBenI2Jmz_jBs-025_piaJ81bvZrb9Q1oEPOPZq7RMQRZT2sBN3-mk6siHEeXIN9WD1ybSIfoHaITDowh1AN8Q&openid=oAhzJs2lQRR6Dd1U95S1lrlMKjSE&lang=zh_CN

参数说明:

access_token      由②所获取

openid                由②所获取

lang                    语言类型,为固定值

调用结果:

示例:

{
    "openid": "oAhzJs2lQRR6Dd1U95S1lrlMKjSE",
    "nickname": "雨天发呆",
    "sex": 1,
    "language": "zh_CN",
    "city": "",
    "province": "",
    "country": "中国",
    "headimgurl":

"http://wx.qlogo.cn/mmopen/TTQibyKjrickytMz9ZYicsibWECY84XyItRFZMp5kYv7vVyNxGMCkl1x1L6eOzGIT2ZGhApDx3n0jDfMy3aodO8PXQ/0",

"privilege": [],
    "unionid": "o_LdHt0WTwyrk41R2vcAs2v5XFQk"
}

------------------------------------------------------------------------------------------------------------

附:

JAVA发送http get请求的方法:

所必须的jar包:commons-httpclient-3.0.1.jar

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.HttpException;

import org.apache.commons.httpclient.HttpStatus;

import org.apache.commons.httpclient.methods.GetMethod;

import org.apache.commons.httpclient.params.HttpMethodParams;

public static String sendGet(String url) {

String newStr = "";

// 构造HttpClient的实例

HttpClient httpClient = new HttpClient();

// 设置 Http 连接超时为3秒

httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(3000);

// 创建GET方法实例

GetMethod getMethod = new GetMethod(url);

// 设置 get 请求超时为 3秒

getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 3000);

// 使用系统提供的默认的恢复策略

getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,

new DefaultHttpMethodRetryHandler());

try {

// 执行getMethod

int statusCode = httpClient.executeMethod(getMethod);

if (statusCode != HttpStatus.SC_OK) {

System.err.println("Method failed: " + getMethod.getStatusLine());

}

// 读取内容

newStr = new String(getMethod.getResponseBodyAsString().getBytes("ISO8859-1"),"UTF-8").trim();

} catch (HttpException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

// 释放连接

getMethod.releaseConnection();

}

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

System.out.println(newStr);

return newStr;

}

利用json-lib-2.3-jdk15.jar来解析json的方法:

String openIdJson = "

{

"access_token": "OezXcEiiBSKSxW0eoylIeByO7M0QcUqqAnU8rzQAkrRdZmwxk9aQoDf5WT5aSvx6wBenI2Jmz_jBs-025_piaJ81bvZrb9Q1oEPOPZq7RMQRZT2sBN3-mk6siHEeXIN9WD1ybSIfoHaITDowh1AN8Q",

"expires_in": 7200,

"refresh_token": "OezXcEiiBSKSxW0eoylIeByO7M0QcUqqAnU8rzQAkrRdZmwxk9aQoDf5WT5aSvx695Vnx345AXlPPDt50Fbl0zfUI5eTGht57oMtwLx_aMyjYF3Juj4AVA_VX0hltk10WL47Z3_v6BnKCD_o9v2S5Q",

"openid": "oAhzJs2lQRR6Dd1U95S1lrlMKjSE",

"scope": "snsapi_userinfo",

"unionid": "o_LdHt0WTwyrk41R2vcAs2v5XFQk"

}

";

JSONObject jo = JSONObject.fromObject(openIdJson);

String openId = jsonObjectOpenId.getString("openid");

时间: 2024-10-14 13:12:48

微信接口获取用户信息的相关文章

微信端获取用户信息(思路)

微信公众号越来越多,对于我们程序员来说,也越来越需要了解微信端接口开发,下面是微信用户进入公众号后,公众号获取用户信息的思路. 当然了,我有代码,这里就只贴一点,主要的还是流程和查阅微信开发文档. appid和secret是登录微信公众号里面设置的,固定的,code是微信用户同意协议返回给前端的code,后台通过这三个参数,访问url获取openid和access_token,然后再根据url访问微信接口获取用户信息. 代码: 1 String requestUrl = "https://api

微信企业号 获取用户信息

业务操作最基础的一个功能是获取访客的身份,传统的获取方式是提供一个登录页面用以访客登录. 在微信企业号中,用户在微信中访问页面时,可以根据相关API获取此用户的微信账号信息,以此来匹配业务服务器存储的相关用户信息. 目录 1.  介绍 2.  代码示例 1. 介绍 1.1 说明 企业号的网页开发,说白了就是移动端web开发,特殊点在于如何获取微信用户的身份信息. 在企业号中可以进行如下步骤获取微信用户信息: 访问一个业务页面时,可通过OAuth验证接口获取此用户信息 → 根据code获取user

php 微信开发获取用户信息如何实现

php 微信开发获取用户信息 获取用户信息的大致算法是 用户授权登录第三方网站, 重点:scope参数: snsapi_basic 静默登录,不需要用户授权,只能获取到openid: snsapi_userinfo ,需要用户点击授权,能获取到openid和所有用户信息: 第一步:先获取用户的code值: 第二步:根据code值去获取access_token,每次请求的值都不一样,如果没有使用,每五分钟更新一次: 第三步:根据access_token获取用户信息: 1.获取code代码实现: g

微信登陆获取用户信息

目前可试试这两个接口 后台需完善地方: 1.拼装微信扫一扫登录url:2.先微信返回access_token才能进行跳转,回调https://api.weixin.qq.com/sns/userinfo?access_token=获取到的ACCESS_TOKEN&openid=获取到的OPENID:3.返回用户信息 1.微信扫一扫获取二维码(点击登陆按钮,获取如下data数据,把此返回值解析成二维码展现给用户来微信扫码登陆) 接口: http://192.168.2.69:8080/client

django搭建微信后台——获取用户信息(7.20)

略坑啊,啃文档啃得要吐了,pythonanywhere上又不好看问题出在哪又跑到本地各种测试才知道原来要授权,又跑去N久之前弄的测试账号,总之各种坑...不过总算是弄清楚怎么实现的了,参考方倍工作室:微信公众平台开发(76) 获取用户基本信息. 第一步是要从POST过来的XML包里面获取openid,也就是FromUserName.这个在开发包里并没有不知道为啥,或者是我没发现?0.0总之自己写了一小段把这个值取出来了. def get_openid(data): if type(data) =

微信授权登录并获取用户信息接口开发

总结一下微信授权登录并获取用户信息 这个接口的开发流程. 一.首先你的微信公众号要获得相应的AppID和AppSecret,申请微信登录且通过审核后,才可开始接入流程. 二.授权流程 1.流程说明 (1). 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数: (2). 通过code参数加上AppID和AppSecret等,通过API换取access_token: (3). 通过access_token进行接口调用,获取

轻松实现支付宝服务窗网页授权从配置到获取授权获取用户信息

前言: 最近在开发一个商业街区的聚合扫码支付功能,其中需要用到的有支付宝,微信两种支付方式,当然对于开发微信支付而已作为自己的老本行已经比较熟悉了,然而对于我来说支付宝支付还是头一次涉及到.这次项目中需要用到的是支付宝公众号支付这一功能,因为需要进行支付宝授权获取到用户的User_ID然后在进行支付宝公众号支付,在这里我就顺带把用户信息也获取了.因为第一次玩,大概配置支付宝开发平台的应用信息到获取到用户User_ID遇到了几个坑,今天记录一下希望能够帮助一下没有做个这样方面的同仁哪些的方有坑,并

微信获取用户信息的两个接口和两个ACCESS_TOKEN

有一段时间没有搞微信开发了 ,今天突然要改一下程序! 回头一看 微信的帮助文档太tm的稀烂的,太难懂了,这做个笔记以后看着方便 微信有2个ACCESS_TOKEN, 1,基础接口的token 获取接口是 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 2,用户网页授权access_token 获取接口地址是 https://api.weixin

【微信小程序】用户首次进入小程序拒绝授权,如何再次调用授权页面,获取用户信息userInfo

前言:微信小程序的app.js里面,最少有2个接口,一个wx.login:一个是wx.getUserInfo: 前者得到腾讯给我们的微信用户唯一的code,通过code获取openid,这个不需要用户授权,我们肯定能得到: 但是,后者是需要用户授权,我们才能通过腾讯得到用户的其他信息,比如nickname.avatarUrl.encryptedData.iv等,如果你只需要openid,下面的代码你可以不用看了,下面重点讲解如何 多次调用wx.getUserInfo或者app.getUserIn