微信OAuth验证 java 版本
来源:互联网 发布:c语言游戏代码大全 编辑:程序博客网 时间:2024/05/16 09:46
/** * @author JackZhang * */public class OAuthAPI { public static final String APP_ID = "ABC"; public static final String APP_SECRET = "CDE"; public static final String DOMAIN = "WWW.ABC.COM"; public static void OAuthIfNesscary(HttpServletRequest request, HttpServletResponse response) throws IOException { String code = request.getParameter("code"); HttpSession session = request.getSession(); boolean isValidCode = true; String serviceUrl = URLEncoder.encode( "http://" + DOMAIN + request.getRequestURI(), "utf-8"); //检查是否已验证或者验证是否通过 if (code == null || code.equals("authdeny")) { isValidCode = false; } //如果session未空或者取消授权,重定向到授权页面 if ((!isValidCode) && session.getAttribute("user") == null) { StringBuilder oauth_url = new StringBuilder(); oauth_url.append("https://open.weixin.qq.com/connect/oauth2/authorize?"); oauth_url.append("appid=").append(APP_ID); oauth_url.append("&redirect_uri=").append(serviceUrl); oauth_url.append("&response_type=code"); oauth_url.append("&scope=snsapi_userinfo"); oauth_url.append("&state=1#wechat_redirect"); response.sendRedirect(oauth_url.toString()); return; } //如果用户同意授权并且,用户session不存在,通过OAUTH接口调用获取用户信息 if (isValidCode && session.getAttribute("user") == null) { Member member = null; JSONObject obj = OAuthAPI.getAccessToken(OAuthAPI.APP_ID,OAuthAPI.APP_SECRET, code); String token = obj.getString("access_token"); String openid = obj.getString("openid"); JSONObject user = OAuthAPI.getUserInfo(token, openid); MemberService memberService = (MemberService) WebAppContext.getObject("memberService"); member = memberService.saveOrUpdateIfNesscary(user); session.setAttribute("user", member); } } /** * 获取授权令牌 * */ public static JSONObject getAccessToken(String appid, String secret, String code) { StringBuilder url = new StringBuilder(); url.append("https://api.weixin.qq.com/sns/oauth2/access_token?"); url.append("appid=" + appid); url.append("&secret=").append(secret); url.append("&code=").append(code); url.append("&grant_type=authorization_code"); return HttpClientUtils.getJson(url.toString()); } //获取用户信息 public static JSONObject getUserInfo(String token, String openid) { StringBuilder url = new StringBuilder(); url.append("https://api.weixin.qq.com/sns/userinfo?"); url.append("access_token=" + token); url.append("&openid=").append(openid); url.append("&lang=zh_CN"); return HttpClientUtils.getJson(url.toString()); }}
$(document).ready(function(){if("${param.code}"=="authdeny"){$("body").css("display","none");document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {WeixinJSBridge.call('closeWindow');});}
2 2
- 微信OAuth验证 java 版本
- 微信企业号 - OAuth验证接口
- 微信OAuth总结
- 微信OAuth认证
- 微信OAuth授权获取用户OpenId-JAVA(个人经验)
- 微信OAuth授权获取用户OpenId-JAVA
- 微信OAuth授权获取用户OpenId-JAVA
- 微信开发oauth协议
- 微信公众平台 OAuth Access_Token获得
- 微信授权网页登陆,oauth
- 微信oauth慢的原因
- OAuth client 微信、qq、新浪登录
- 微信企业号oauth认证
- 微信OAuth授权获取用户OpenId-JAVA(个人经验)【申明:来源于网络】
- java微信开发-token验证
- java验证微信公众平台
- Java微信开发之接入验证
- java微信开发-token验证
- PHP(xml转成json)样例
- MySQL数据库的索引实现
- 寻找最大的K个数
- ubuntu server安装中文支持及中文输入法
- Linux mv 命令的10个实用例子
- 微信OAuth验证 java 版本
- LocationManager 的简单使用
- 【NSURL URLWithString:url 】中string不为空而URL输出为空的情况
- 项目2--三角形类2
- MFC中的一些小知识
- maven 创建的工程 或是从Svn上导出的maven工程不能被eclipse识别为web工程
- 山寨语言R++ V1.7(支持无操作系统裸奔、编译EXE、cocos2dx、闭包、中文编程)
- 那些年,错过的时光(五)
- 行列转换的例子(学习笔记)