获取openid和userinfo信息

一:基于微信公众号的授权登录,获取openid和用户信息。

第一步:用户同意授权,获取code

在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。

代码实现:

package com.cxb.otherWx;import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import com.cxb.wx.accesstoken.Account;
/*** @author ChenXb**         2018年4月19日*                     这里从授权到获取微信openid以及用户信息完结*/
public class WxAuthor {
//微信授权的地址
private static final String AUTHORIZE_URL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect";/*
* 获取网页授权url
*/
public static String getAuthorize_url() {
String REDIRECT_URI=null;
try {
//这里的url就是访问你后台的链接地址
REDIRECT_URI = URLEncoder.encode("http://www.joffro.com/Activity/sendMessage/sendMsg?appid=**************","UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//scope 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),
//snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
String url = AUTHORIZE_URL.replace("APPID", Account.APPID).replace("REDIRECT_URI", REDIRECT_URI)
.replace("SCOPE", "snsapi_userinfo").replace("STATE", "123");
return url;
}public static void main(String[] args) {
//这里的链接copy到微信浏览器里面访问
String authorize_url = getAuthorize_url();
System.out.println(authorize_url);
//根据上面的链接在微信里面访问到后台的配置链接
//这些代码则是后台处理的逻辑,获取openid和userinfo等信息
/*String code = getPara("code");
log.error("*********code****"+code);
//根据code获取openid
String url="https://api.weixin.qq.com/sns/oauth2/access_token?appid="+APPID
+ "&secret="+APPSECRET
+ "&code="+code
+ "&grant_type=authorization_code";
JSONObject jsonObject = doGetJson(url);
String openid = jsonObject.getString("openid");
log.error("*****openid***>"+openid);
String accessToken = jsonObject.getString("access_token");
//根据openid获取用户信息
String getUserInfoUrl="https://api.weixin.qq.com/sns/userinfo?access_token="+accessToken
+ "&openid="+openid
+ "&lang=zh_CN";
JSONObject userInfo = doGetJson(getUserInfoUrl);
log.error("*****userInfo****"+userInfo);*/}
}
 //以下代码是后台程序中用到的   这里是上面配置的访问链接的后台地址
public static final String APPID="************************";   //这里修改为自己的APPID
public static final String APPSECRET="*********************";    //这里修改为自己的APPSECRET
public static JSONObject doGetJson(String url){
JSONObject jsonObject=null;
//这个方法过时了 换成下面的方式了
//DefaultHttpClient client=new DefaultHttpClient();
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpGet=new HttpGet(url);
HttpResponse response = null;
try {
response = httpclient.execute(httpGet);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HttpEntity entity=response.getEntity();
if(entity!=null){
String result = null;
try {
result = EntityUtils.toString(entity,"UTF-8");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
jsonObject = JSONObject.fromObject(result);
}
//处理完后,释放链接
httpGet.releaseConnection();
return jsonObject;}

附录:

微信授权(获取openid和userinfo信息)相关推荐

  1. 微信授权获取openID等信息,这里简化记录一下

    微信授权获取openID等信息 微信测试平台连接:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 授权操作必须用外网(推荐 ...

  2. node 微信授权 获取openid

    node获取微信授权拿到openid 需要了解的网站   1.微信授权. 先说一下流程(一张图代替所有): 流程步骤: 1.用户同意,获取code. 2.通过code获取网页授权access_toke ...

  3. 微信小程序 - 登录获取openid和用户信息(适配getUserProfile)

    GitHub Demo 地址: jh-weapp-demo 实现一些常用效果.封装通用组件和工具类 小程序码 微信小程序中如果需要使用微信的用户信息建立自己的用户体系,需拿到唯一标识openid,然后 ...

  4. 微信授权获取code请求openID,js+java

    作者:LoveEmperor-王子様 微信网页获取用户授权 请见另一版: https://blog.csdn.net/qq_31424825/article/details/80272364 背景 * ...

  5. php微信小程序获取用户信息,微信小程序获取openid及用户信息的方法

    本文主要介绍微信小程序如何获取openid及用户信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家. 1. 获取openid 1.1 获取code 调用接口获取登录凭证(code ...

  6. Weixin4j微信开发网页授权获取openid案例

    前言 weixin4j网页静默授权获取openid案例 **说明:**微信网页授权基础知识请参考官方文档. 静默授权获取OpenId 本 示例基于weixin4j开发,weixin4j是Java微信开 ...

  7. H5在微信中获取openid

    H5在微信中获取openid 为什么要获取openid openId是用户在当前公众号下的唯一标识('身份证').在微信中进行微信分享.支付等操作时需要用户的openid.H5要在微信中获取到用户op ...

  8. html获取微信code,微信授权获取code(微信支付)

    微信授权获取code(微信支付) 2019-03-02 编程之家 https://www.jb51.cc 编程之家收集整理的这篇文章主要介绍了微信授权获取code(微信支付),编程之家小编觉得挺不错的 ...

  9. android 微信授权获取用户个人信息

    微信官方文档API:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Development_Guide.h ...

最新文章

  1. 17个Python的“正常“ 操作,你都OK吗?
  2. 前端遮罩层实现_css遮罩层怎么做?
  3. Docker的部署-包括网关服务(Ocelot)+认证服务(IdentityServer4)+应用服务
  4. gym103117J. Ants
  5. delphi控件切图界面闪烁_DirectUI用户手册.pdf
  6. pytorch 之 imagefloder的用法
  7. [郑重声明]木草山人编码的习惯
  8. scala 判断字段 是不是 日期类型_scala 使用指南,降低新手入门难度
  9. Q81:“三角形网格”之“PLY文件”
  10. --》【日常】程序员常用网站
  11. 操作抖音取名项目日赚 500 实战案例分析
  12. 吉首大学校赛 A SARS病毒 (欧拉降幂)
  13. HBuilder软件下载及安装教程
  14. 微信发定位服务器地址,腾讯位置服务教你轻松搞定微信发送位置功能
  15. 阿里内核月报2017年02月
  16. Settings.settings文件的用处
  17. 【NVIDIA】 CUDA Toolkit工具包下载
  18. markdown 摘记
  19. k8s之ConfigMap详细理解及使用
  20. 计算机usb接口充电效率差,手机USB接口的4个真相:为何速度、功能有差别?

热门文章

  1. 朱 蚌埠机器人餐厅_蚌埠一餐厅启用机器人服务员 能传菜会说话任拍照(图)...
  2. Adobenbsp;Creativenbsp;Suitenbsp;6(CS6)正…
  3. JAVA程序设计:数组中的最长山脉(LeetCode:845)
  4. [职场]一般公司入职签合同试用期6个月,合同年限3年,合理吗?
  5. 英文盲盒国际版PC网页版
  6. 教育大国芬兰儿童编程作家讲述“编程思维”
  7. 学术论文写作英语句型
  8. nordic SDK15.0版本的空中升级实验
  9. mac上docker pull是报错Error response from daemon: Get https://xx.xx.xx.xx/v2/: Service Unavailable
  10. 计算机毕业设计 微信小程序共享雨伞租借系统