`
a729812804
  • 浏览: 41045 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

微信 微信授权 用户登陆处理

 
阅读更多

/**

* 使用微信登陆。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";

 

}

分享到:
评论

相关推荐

    微信公众平台 网页授权获取用户基本信息(asp.net C#)

    微信公众平台 网页授权获取用户基本信息 //获取从wxProcess.aspx传递过来的跳转地址reurl if (Request.QueryString["reurl"] != null && Request.QueryString["reurl"] != "") { reurl = Request.QueryString["re...

    java处理小程序授权和app微信授权

    java处理小程序授权和app微信授权,以及解析小程序传的encryptedData参数和移动端获取用户信息的处理,压缩包里面包含controller类,解析工具类,配置文件,亲测有效。

    Promise在微信小程序登录中的应用.pdf

    在微信小程序登录过程中获取微信用户信息时,需要进行多个有关联的异步请求操作,获取用户加密信息,然后对其解密并返回。传统的异步回调嵌套方法造成程序可读性差,程序执行性能低下。而Promise的出现,解决了微信小程序...

    解决微信授权回调页面域名只能设置一个的问题

    在做项目集成微信登录以及微信支付的时候,都需要进行用户授权。这个授权的流程可以简单描述为: 1. 用户从我们的应用触发需要授权的操作,比如点击微信登录; 2. 应用收到这种用户请求后,将用户重定向到微信提供的...

    微信相关接口api封装1.6版

    微信小程序登录 微信回调处理 微信退款处理 1、需要在pom中加入build中所列出的包 2、具体使用查看dao下的Test示例 修改: 1、新增加可使用自定义的accessToken调用方法 @version 1.6 1、增加了JSONUtils取值工具...

    微信公众平台 网页授权获取用户基本信息(.net)

    微信公众平台 网页授权获取用户基本信息 //获取从wxProcess.aspx传递过来的跳转地址reurl if (Request.QueryString["reurl"] != null && Request.QueryString["reurl"] != "") { reurl = Request.QueryString["re...

    .net 微信开放平台接口(接收信息、发送信息)

    适合初学者的.net微信开发案例,主要实现功能为:处理微信公众平台用户推送的信息、回复信息、设置自定义菜单等.

    微信小程序处理用户拒绝授权情况及微信登录,登录保存等系列解决方案

    在微信小程序开发时,当我们调用API wx.getUserInfo(OBJECT) 时,需要用户授权。但如果用户拒绝授权,我们如何兼容用户拒绝授权状态,拥有更好的用户体验呢? 先看看这个接口的官方文档: wx.getUserInfo(OBJECT)  ...

    毕设基于stm32、树莓派,后端使用Java的springboot架构,以微信小程序作为用户控制端的智能家居控制系统

    基于STM32、树莓派和...它负责处理用户请求、管理家居设备、实现用户身份认证和授权、处理数据存储和传输等功能。 微信小程序作为用户控制端: 微信小程序作为用户的控制端,提供了友好的用户界面和便捷的操作体验。

    wxAuthorize:微信授权并获取用户信息demo

    用于调用微信api获取授权用户信息的demo,用于微信网页需要授权的场景,本demo只是演示获取用户信息流程,具体使用要根据自己项目来实现,可以基于此编写一个node中间件来处理授权。其中index.js为使用ES6的async,...

    人工智能+GPT 微信小程序聊天机器人(前后端源码)

    同时,后端还对API密钥做了验证,确保只有授权用户才可以使用该API接口。 总体来说,该GPT微信小程序是一个非常有用的智能问答工具,可以帮助用户快速解答问题并提供相应的解决方案。它的前后端源码都非常清晰易懂...

    微信公众平台接口开发java版sdk

    此sdk包含【开放平台全网发布】,接收微信推送消息事件,发起公众号授权,处理各消息事件,粉丝,分组,支付,emoji处理,网页授权,获取用户信息,群发,图文,回复内容,上传下载多媒体文件,自定义菜单,...

    微信小程序处理用户拒绝授权情况及微信登录,登录保存等系列解决方案 ...

    在微信小程序开发时,当我们调用API wx.getUserInfo(OBJECT) 时,需要用户授权。但如果用户拒绝授权,我们如何兼容用户拒绝授权状态,拥有更好的用户体验呢? 先看看这个接口的官方文档: wx.getUserInfo(OBJECT)  ...

    oauth-wx:OAth2.0之微信登录授权

    OAth2.0之微信登录授权 协议介绍 当你开始使用一个网站还是手机应用的时候, 那么第一步很有可能是从注册开始的, 从最初一丝不苟的填写一串表单注册,到使用短信验证码注册, 体验越来越好, 不过这个时候也会带来几个...

    微信小程序用户拒绝授权的处理方法详解

    所以,微信官方推荐了一个方法,就是在用户第一次拒绝授权的时候,再给用户一个选择的机会.这样能很好的解决上诉问题.下面以用户需要授权两个权限为例,方法如下: 在 APP.JS 先设置两个全局变量 .用作记录用户是否授权 ...

    关于微信小程序拒绝授权后,重新授权并获取用户信息

    最近公司做了一些有关微信小程序的项目,涉及到授权获取用户基本信息,但是在拒绝授权之后就不会再出现授权窗口;  看网上也有很多人遇到了同样的问题,所以记录下来我的处理方法,供大家和自己学习和记录:  当...

    微信公众平台开发最佳实践 源代码

    5.3.2 处理识别消息 61 5.4 客服接口 61 5.4.1 客服接口实现 62 5.4.2 消息接口与客服接口相结合 70 5.4.3 客服接口的意义 71 5.5 OAuth2.0网页授权 72 5.5.1 OAuth2.0 72 5.5.2 授权过程 72 5.5.3 详细...

    springboot框架基于微信小程序的居民健康监测系统的实现.rar

    用户身份验证与管理:用户可以通过微信小程序登录系统,使用微信提供的授权机制进行身份验证。Spring Boot框架提供了强大的安全性支持,可以保障用户数据的安全性和隐私。 健康数据采集与存储:用户可以通过微信小...

    微信小程序的付费自习室管理系统(源码+部署说明+演示视频+源码介绍+lw).zip

    用户注册与登录:用户可以通过微信授权登录,无需额外注册账号,方便快捷。 自习室预约:用户可以查看自习室的空闲座位情况,选择合适的时间段进行预约,支持提前预约和取消预约。 在线支付:用户可以通过微信支付...

Global site tag (gtag.js) - Google Analytics