微信二次开发点击菜单openId的获取
首先普及一个知识:一个关注的用户对于一个微信公众号是唯一的,也就是说一个用户针对与一个微信公众号是唯一的,对于不同的公众号,同一个微信号具有不同的openId;
在微信开发中,我们添加了一个二级菜单并实现一些相应的功能,往往是需要获取自己的openId,本文主要阐述如果通过与微信的交互得到自己的openId ;
这里提供一个连接,用于向微信发起请求:(在重定向之前准备好微信的AppId以及token,重定向的URL会被原样返回)
public static String buildAuthorizationUrl(String appid,String redirectUri, String state) {
		String url = "https://open.weixin.qq.com/connect/oauth2/authorize?";
		url = url + "appid=" + appid;
		url = url + "&redirect_uri=" + URIUtil.encodeURIComponent(redirectUri);
		url = url + "&response_type=code";
		url = url + "&scope=snsapi_base";
		if (state != null) {
			url = url + "&state=" + state;
		}
		url = url + "#wechat_redirect";
		return url;
}
请求成功后,会额外返回一个code以及state参数,其中code参数是唯一的,也就是说一次请求,产生一个code,作为校验的唯一标准,state参数是之前请求中的token参数
之后,获取到公众号的APPID以及appscret,通过解析返回的json数据格式,获取到自己个人的openId,之后再进行对业务的操作
public static String oauth2getOpenID(String code, String appid,
String appsecret) {
String url = "https://api.weixin.qq.com/sns/oauth2/access_token?";
url = url + "appid=" + appid;
url = url + "&secret=" + appsecret;
url = url + "&code=" + code;
url = url + "&grant_type=authorization_code";
JSONObject jsonObject = JsonUtil.httpsRequest(url, "GET", "");
System.out.println("jsonObject=" + jsonObject);
return jsonObject.getString("openid");
}
微信二次开发点击菜单openId的获取的更多相关文章
- 【Android】Android开发点击查看手机电量的小功能。学习广播的一个小技能小Demo
		作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 微博:http://weibo.com/mcxiaobing 首先给大家看一下效果图: 先写一个广播类 ... 
- 微信公众号菜单openid 点击菜单即可打开并登录微站
		现在大部分微站都通过用户的微信openid来实现自动登录.在我之前的开发中,用户通过点击一个菜单,公众号返回一个图文,用户点击这个图文才可以自动登录微站.但是如果你拥有高级接口,就可以实现点击菜单,打 ... 
- 微信公众平台开发(99) 自定义菜单获取OpenID
		关键字 微信公众平台 自定义菜单 OpenID作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/weixin-menu-get-openid.html 在这篇微信 ... 
- Senparc.Weixin.MP SDK 微信公众平台开发教程(二十):使用菜单消息功能
		在<Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明>教程中,我们介绍了如何使用“客服接口”,即在服务器后台,在任意时间向微信发送文本.图文.图片等不 ... 
- .net MVC 微信公众号 点击菜单拉取消息时的事件推送
		官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141016&token=&lang=zh_CN ... 
- 微信公众号开发之VS远程调试
		目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ... 
- 沐雪多用户微信公众平台开发源码,商城小程序源码(2018年最新的asp.net C# 微信源码,小程序源码)
		现售价5400元,就可以搭建自己的微信平台啦 购买地址:https://item.taobao.com/item.htm?id=539102325336 该系统是由[上海沐雪网络]独家授权销售,其他地 ... 
- 前端通过js获取微信公众号用户的唯一标识符openId
		微信公众号程序开发的时候,获取用户信息的时候,需要用到用户的openId,openId是微信用户的唯一标识符,这个操作可以后台实现也可以前端实现,之前项目里是通过后台来获取的,好像用到了一些三方的包, ... 
- 微信公众账号开发之N个坑(一)
		我这人干活没有前奏,喜欢直接开始.完了,宝宝已经被你们带污了.. 微信公众账号开发文档,官方版(https://mp.weixin.qq.com/wiki),相信我,我已经无力吐槽写这个文档的人了,我 ... 
随机推荐
- jmeter学习笔记--线程组
			jmeter组件:线程组 是什么? 进程:一个正在执行的程序对应一个进程 线程:进程中的执行线索(一个进程中有多个执行线索) 线程组:按照线程性质对线程进行分组 并发执行:多个线程同时进行 特点 ... 
- [转]Flash开发技能树
- React Router的Route的使用
			Route 是 React Router中用于配置路由信息的组件,每当有一个组件需要根据 URL 决定是否渲染时,就需要创建一个 Route. 1) path 每个 Route 都需要定义一个 pat ... 
- Python中日期和时间格式化输出的方法
			本文转自:https://www.jb51.net/article/62518.htm 本文实例总结了python中日期和时间格式化输出的方法.分享给大家供大家参考.具体分析如下: python格式化 ... 
- CVTE C/C++开发工程师笔试题(二)
			问题描述:打印重复元素 给定一个数组,内容可能包含1到N的整数,N最大为40000,数组可能含有重复的值,且N的取值不定.若只剩余5KB内存可用,请设计函数尽可能快的答应数组中所有重复的元素. voi ... 
- Java多线程02(线程安全、线程同步、等待唤醒机制)
			Java多线程2(线程安全.线程同步.等待唤醒机制.单例设计模式) 1.线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运行结果和单线程运行的结果是一样的,而且其他的变量 ... 
- CMD运行JAVA出现编码GBK的不可映射字符处理方法?
			方法一: (将notepad编辑器的编码方式改为ANSI后再进行程序代码的编译,将之前乱码的汉字删除重新输入正常的汉字) 1.notepad编辑器默认编码方式为UTF-8时,CMD里面执行javac ... 
- 大数据学习(一)-------- HDFS
			需要精通java开发,有一定linux基础. 1.简介 大数据就是对海量数据进行数据挖掘. 已经有了很多框架方便使用,常用的有hadoop,storm,spark,flink等,辅助框架hive,ka ... 
- log4j2.xml日志文件设置文件路径
			笔者最近的项目里使用了spring,spring通过web.xml配置监听器,在web启动时web.root系统变量,以供其他变量使用,例如 在属性文件里使用${web.root}以取得完整路径,项目 ... 
- 7B - 今年暑假不AC
			“今年暑假不AC?” “是的.” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了. ... 
