/**
* 使用微信登陆。JAVA版
*
* @return
* @throws IOException
*/
public String wxLogin() throws IOException, QQConnectException {
getResponse().setContentType("text/html;charset=utf-8");
// 请求被拦截的路径
// String bUri = getRequest().getHeader("referer");
String aUri = CommonUtil.getRequestURL(getRequest());
getRequest().getSession().setAttribute("bUri", aUri);
String requestUrl = ConfigUtil.OAUTH2_URL.replace("APPID", ConfigUtil.APPID).replace("REDIRECT_URI",
CommonUtil.urlEncodeUTF8(ConfigUtil.REDIRECT_URI)).replace("STATE", PayCommonUtil.buildRandom(3) + aUri);
logger.error("微信 wxLogin.bUri =====================================================================" + aUri);
logger.error("微信 wxLogin.requestUrl =====================================================================" + requestUrl);
getResponse().sendRedirect(requestUrl);
return null;
}
/**
* 通过code获取token
*
* @param order
* @throws IOException
*/
public String payapireturnurl() throws IOException {
// HttpServletRequest request = (HttpServletRequest)
// ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
// HttpServletResponse response = (HttpServletResponse)
// ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);
String wxcode = code;// 微信code
String wxstate = state;// 微信state
logger.error("微信 payapireturnurl.wxcode ============" + wxcode);
logger.error("微信 payapireturnurl.wxstate ============" + wxstate);
token = CommonUtil.getOAUTH2(ConfigUtil.APPID, ConfigUtil.APP_SECRECT, code, getRequest());
try {
String accessToken = null, openID = null, nickname = null;
long tokenExpireIn = 0L;
if (token==null||token.getAccessToken().equals("")) {
// 我们的网站被CSRF攻击了或者用户取消了授权
// 做一些数据统计工作
logger.error("没有获取到响应参数");
} else {
accessToken = token.getAccessToken();
tokenExpireIn = token.getExpiresIn();
// 利用获取到的accessToken 去获取当前用的openid -------- start
openID = token.getOpenId();
logger.error("欢迎你,代号为 " + openID + " 的用户!");
// 查询本地数据库,如果没有此用户则创建一个
Account acc = new Account();
acc.setOpenId(openID);
acc = accountService.selectOne(acc);
logger.error("查询微信用户。acc===========" + acc);
if (acc == null) {
logger.error("查询不到此微信用户。准备创建一个。");
acc = new Account();
acc.setOpenId(openID);
acc.setAccessToken(accessToken);
acc.setLoginType(LoginTypeEnum.wx);// 设置为微信登陆
acc.setAccountType(acc.getLoginType().toString());
logger.error("AccountType ===============." + acc.getLoginType().toString());
acc.setAccountType(acc.getLoginType().toString());
accountService.insertOutAccount(acc);
logger.error("创建成功。");
logger.error("注册完毕.");
acc.setLoginType("wx");// 设置为微信登陆
acc.setNickname(nickname);
logger.error("登陆完毕.");
}
String bUri = (String) getRequest().getSession().getAttribute("bUri");
if (bUri == null || bUri.equals("")) {
bUri = state.substring(3);
}
logger.error("微信 payapireturnurl.bUri ============" + bUri);
if (bUri != null && bUri != "") {
getResponse().sendRedirect(bUri);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
// return "payapireturnurl";
}
相关推荐
本教程将详细讲解如何实现第三方应用中的微信授权登录和微信网页扫码登录。 一、微信授权登录 1. **微信开放平台注册**:首先,你需要在微信开放平台(open.weixin.qq.com)注册并创建一个应用,获取到AppID和App...
ASP微信小程序(授权登录+微信支付)案例DEMO是一个实用的教学资源,涵盖了微信小程序开发中的核心功能:授权登录和微信支付。在这个项目中,开发者可以学习如何利用ASP后端技术和微信开放平台接口来构建一个完整的...
总的来说,这个项目提供了从C#角度实现微信授权登录的完整流程,包括微信开放平台的配置、openid的处理以及微信小程序获取用户手机号码的步骤。通过学习和实践这个项目,开发者可以深入理解微信授权登录的原理,并能...
总的来说,js微信网页授权登录是构建用户友好、便捷登录方式的重要技术,企业微信授权登录则进一步扩展了这一功能,适用于企业内部的系统整合。理解并掌握这些知识点,对开发涉及微信或企业微信功能的应用至关重要。
当用户访问网站时,如果需要微信登录,会引导用户跳转到微信授权页面。用户同意授权后,微信会返回一个授权码,开发者需要将这个授权码通过HTTP请求发送到微信服务器换取Access Token。 3. **获取Access Token**: ...
`login.cs`文件很可能是处理登录逻辑的主要类,它可能包含了处理微信授权回调的代码。在这个文件中,开发者可能会找到处理授权码、请求Access Token、获取用户信息以及整合到自身用户系统的函数。 3. **...
6. **OAuth2.0授权协议**:微信授权登录基于OAuth2.0协议,这是一个广泛使用的开放标准,用于安全地获取用户授权。开发者需要理解OAuth2.0的四个主要角色(资源所有者、客户端、资源服务器、授权服务器)以及授权码...
1. **weixin**:可能是一个包含微信API调用相关代码的PHP类或者目录,包含了处理微信授权的核心逻辑。 2. **ceshi2.php**、**ceshi.php**:这些可能是测试文件,用于调试和演示授权登录的过程,其中可能包含了发起...
微信授权登录是微信开放平台提供的一种服务,允许第三方应用通过用户授权的方式获取微信用户的个人信息,以便进行特定功能的实现,如用户身份验证、个性化服务等。这个“微信授权登录demo源码”是一个简单的示例,...
在微信开发中,微信网页授权是一个关键功能,它允许用户在第三方网站上使用微信账号进行登录,提升用户体验的同时,也方便了用户数据的统一管理。本教程将详细讲解如何使用Java实现微信网页授权获取用户的openid及...
本文将详细讲解如何使用Java处理小程序和App的微信授权,以及解析小程序传递的`encryptedData`参数,以获取移动端用户的详细信息。 首先,小程序授权主要依赖微信开放平台提供的OAuth2.0协议,它允许第三方应用在...
2. 用户授权:用户在微信授权页面上确认是否允许应用获取其信息。如果用户同意,微信会将用户重定向到开发者预先设定的重定向URI,并在URL中附带一个授权码(code)。 3. 获取Access Token:开发者通过HTTP POST...
微信公众平台 网页授权获取用户基本信息 //获取从wxProcess.aspx传递过来的跳转地址reurl if (Request.QueryString["reurl"] != null && Request.QueryString["reurl"] != "") { reurl = Request.QueryString["re...
4. **处理回调**:用户在微信授权页面确认授权后,会被重定向回你在微信开放平台配置的回调域名,并附带一个授权码(code)。此时,你的服务器需要接收这个code,并使用AppID、AppSecret和code向微信API请求access_...
【ASP版企业微信API之授权登录】是针对ASP开发者如何集成企业微信API,实现企业微信的授权登录功能的一系列技术讲解。在这个过程中,开发者需要掌握以下几个核心知识点: 1. **OAuth2.0授权协议**:企业微信API的...
在.NET开发环境中,微信授权第三方登录是一个常见的功能需求,它允许用户通过微信账号进行快捷登录,提高用户体验。本文将深入探讨如何使用C#语言来实现这一功能,以及在这个过程中需要注意的关键知识点。 首先,...
微信小程序授权登录弹框是微信小程序中用于获取用户信息的重要功能。在开发微信小程序时,开发者经常需要调用此功能来实现用户的身份验证,以便提供个性化的服务或保护用户的数据安全。这一过程涉及到的主要知识点...
微信网页授权是微信提供的一种服务,允许第三方网站通过用户授权获取其微信账号的相关信息,实现安全便捷的登录功能。在这个过程中,OAuth2.0扮演了关键角色。OAuth2.0是一个开放标准,用于授权第三方应用访问用户在...
同时,使用`make_response`或`redirect`来构建和发送响应,如重定向到微信授权页面或处理登录后的页面跳转。 7. **错误处理与调试**: 实现过程中可能会遇到微信API调用失败、用户拒绝授权等问题,需要设置适当的...
微信授权模块,顾名思义,主要用于处理微信平台的用户授权问题。通过这个模块,开发者可以实现在自己的应用程序中接入微信的功能,如登录授权、获取用户信息、发送消息等。微信开放平台提供了丰富的API接口,而...