java企业微信扫码获取用户的信息

首先先从前端获取code传递到java后台(这个我就不介绍了,获取code的方法百度一堆)
接着要获取企业用户的corpid为每个企业都拥有唯一的corpid(获取此信息可在管理后台“我的企业”-“企业信息”下查看(需要有管理员权限))
corpsecret是企业应用里面用于保障数据安全的“钥匙”,每一个应用都有一个独立的访问密钥

package com.xxx.login.action;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

import javax.net.ssl.HttpsURLConnection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
 * 企业微信
 * 
 * @author ygd
 *
 */
@RestController
@RequestMapping(value = "qiye")
public class QiYeWeixinAction {

	
	private Logger logger = LoggerFactory.getLogger(this.getClass());
	
	/**
	 * 获取企业微信用户信息
	 */
	@RequestMapping(params="operate=findUserId",method=RequestMethod.GET)
	public String token(String code,HttpServletResponse response,HttpServletRequest request){
		// corpid为每个企业都拥有唯一的corpid
		// corpsecret是企业应用里面用于保障数据安全的“钥匙
		String corpid = "";
		String corpsecret = "";
		try {
			
			String token = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+ corpid + "&corpsecret=" + corpsecret;
			//获取access_token
			JSONObject myJsonObject = path(token);
			String access_token = myJsonObject.getString("access_token");
			String userId = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token="
					+ access_token + "&code=" + code;
			
			//获取用户UserId
			JSONObject myJsonObject2 = path(userId);
			String userId_token = myJsonObject2.getString("UserId");
			String path = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token="+access_token+"&userid="+userId_token;
			//重定向跳转
			response.sendRedirect(path);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * 将路径解析
	 * @param url
	 */
	public JSONObject path(String url){
		URL u;
		HttpsURLConnection huconn;
		JSONObject myJsonObject = null;
		try {
			u = new URL(url);
			huconn = (HttpsURLConnection) u.openConnection();
			BufferedReader in = null;
			StringBuilder result = new StringBuilder();
			huconn.connect();
			in = new BufferedReader(new InputStreamReader(huconn.getInputStream(),
					"UTF-8"));
			String line;
			while ((line = in.readLine()) != null) {
				result.append(line);
			}
			if (in != null) {
				in.close();
			}
			// 返回结果为JSONObject格式,需要再做一步操作获取token
			myJsonObject = new JSONObject();
			myJsonObject = JSONObject.fromObject(result.toString());
		} catch (IOException e) {
			e.printStackTrace();
		}
		return myJsonObject;
	}
}

总体来说就可以获取用户数据了,如果需要获取指定数据,那就用上面写的 myJsonObject.getString(“xxx”);这样就能在后台获取指定数据,然后再存储的json字符串中,最后展示到页面即可

第一次写博客,希望多多支持!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java中实现微信扫码登录,您可以按照以下步骤进行操作。 首先,您需要在微信公众平台上创建一个开发者账号,并获取到您的AppID和AppSecret。这些信息将用于后续的认证和授权操作。 然后,您可以使用微信提供的SDK或API来实现扫码登录功能。根据您提供的引用内容,您可以参考微信官方文档中的扫码登录部分来了解具体的实现流程。 在Java中,您可以通过后台的Controller来处理微信的认证和授权逻辑。您可以根据微信返回的参数(如code和state)来调用相应的方法进行验证和授权操作。 在前端页面中,您可以使用微信提供的JS SDK来生成扫码登录的二维码并显示在页面上。同时,您需要在前端页面中添加相应的点击事件,以触发微信登录功能。 在后台的Controller中,您可以通过调用微信的API来获取扫码登录所需的参数,如AppID和redirect_uri。然后将这些参数传递给前端页面,以便生成正确的扫码登录二维码。 总结起来,您需要进行以下步骤来实现Java中的微信扫码登录: 1. 在微信公众平台上创建开发者账号,并获取AppID和AppSecret。 2. 在后台的Controller中处理微信的认证和授权逻辑。 3. 在前端页面中使用微信的JS SDK生成扫码登录二维码,并添加相应的点击事件。 4. 调用微信的API来获取扫码登录所需的参数,并将这些参数传递给前端页面。 希望以上信息能帮助到您实现Java中的微信扫码登录功能。如有更多问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [java集成微信扫码登录](https://blog.csdn.net/weixin_48214611/article/details/120134304)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [java实现微信二维码登录功能](https://blog.csdn.net/weixin_42132143/article/details/89206215)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值