① 小程序後台獲取openId解密的java代碼怎麼寫
一、獲取code
將code作為參數傳遞過來
//如果有code,說明是微信小程序,根據code獲取openId
//classify用於標識是哪個小程序
if (!CheckUtil.checkNulls( keUser.getCode(),keUser.getClassify())){
//
String openid = OpenIdUtil.oauth2GetOpenid(keUser.getCode(),keUser.getClassify());
printParamsLog(openid, logger);
keUser.setUserId(openid);
}1234567812345678
二、工具類
package com.util;
import net.sf.json.JSONObject;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import java.util.HashMap;
import java.util.Map;
/**
* @author xsx
*/
public class OpenIdUtil {
public static String oauth2GetOpenid(String code,String classify) {
String appid="";
String appsecret="";
switch (classify){
case "1":
//自己的配置appid
appid = "**********";
//自己的配置APPSECRET;
appsecret = "**********";
break;
case "2":
appid = "**********";
appsecret = "************";
break;
case "3":
appid = "**********";
appsecret = "************";
break;
case "4":
appid = "**********";
appsecret = "************";
break;
case "5":
appid = "**********";
appsecret = "************";
}
//授權(必填)
String grant_type = "authorization_code";
//URL
String requestUrl = "https://api.weixin.qq.com/sns/jscode2session";
//請求參數
String params = "appid=" + appid + "&secret=" + appsecret + "&js_code=" + code + "&grant_type=" + grant_type;
//發送請求
String data = HttpUtil.get(requestUrl, params);
//解析相應內容(轉換成json對象)
JSONObject json = JSONObject.fromObject(data);
//用戶的唯一標識(openid)
String Openid =String.valueOf(json.get("openid"));
//System.out.println(Openid);
return Openid;
}
}
555657585960
三、發送請求的工具類
package com.util;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
/**
* @author xsx
*/
public class HttpUtil {
/**
* 向指定URL發送GET方法的請求
*
* @param url
* 發送請求的URL
* @param param
* 請求參數,請求參數應該是 name1=value1&name2=value2 的形式。
* @return String 所代表遠程資源的響應結果
*/
public static String get(String url,String param){
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
//System.out.println(urlNameString);
URL realUrl = new URL(urlNameString);
// 打開和URL之間的連接
URLConnection connection = realUrl.openConnection();
// 設置通用的請求屬性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立實際的連接
connection.connect();
// 獲取所有響應頭欄位
Map<String, List<String>> map = connection.getHeaderFields();
// 遍歷所有的響應頭欄位
/*for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}*/
// 定義 BufferedReader輸入流來讀取URL的響應
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("發送GET請求出現異常!" + e);
e.printStackTrace();
}
// 使用finally塊來關閉輸入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
}
② java中微信分享鏈接獲取openid,
1 首先,我們需要進入我們的服務號,點擊左側欄開發者中心--->修改網頁授權獲取用戶基本信息的值,假設我們對外的ip為183.33.212.175,tomcat的埠號為8016,這個修改為183.33.212.175:8016。
2 創建WeiXinOauth2Token類。該類具有以下屬性:(自行添加get,set方法)
private String accessToken;
private int expiresIn;
private String refeshToken;
private String openId;
private String scope;
3 調用微信的授權介面
4 然後將redirect_uri進行encode
5 獲取用戶openid
③ JAVA關於微信OpenId獲取問題
如果你不是認證了的服務號,那麼抱歉,你獲得不了用戶的微信號,所以根本判斷不了他是否關注了。如果你是擁有高級介面的服務號,那麼你可以獲得關注用戶OpenID列表和訪問用戶的OpenID,查找一下就能確定是否關注了。
④ OAuth2.0網頁授權微信怎麼用java獲取openid
第一步:用戶同意授權,獲取code 引導用戶進入授權的URL 修改一些參數
在確保微信公眾賬號擁有授權作用域(scope參數)的許可權的前提下(服務號獲得高級介面後,默認帶有scope參數中的snsapi_base和snsapi_userinfo),引導關注者打開如下頁面:
⑤ java怎麼獲取微信的openid
1 首先,我們需要進入我們的服務號,點擊左側欄開發者中心--->修改網頁授權獲取用戶基本信息的值,假設我們對外的ip為183.33.212.175,tomcat的埠號為8016,這個修改為183.33.212.175:8016。
2 創建WeiXinOauth2Token類。該類具有以下屬性:(自行添加get,set方法)
private String accessToken;
private int expiresIn;
private String refeshToken;
private String openId;
private String scope;
3 調用微信的授權介面
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
4 然後將redirect_uri進行encode
5 獲取用戶openid
http://blog.csdn.net/u011160656/article/details/41847517
⑥ 如何獲取微信用戶的Openid詳解
1、要獲取openid,必須要通過OAuth2.0來完成網頁授權才能完成的,通過OAuth2.0來完成網頁授權後,在經過用戶許可後,就可以通過授權頁面,獲得用戶的openid
2、如何通過OAuth2.0網頁授權呢?要先通過申請高級介面功能
3、申請通過後,還要做一個授權頁面,引導用戶授權就能獲得openid!
⑦ 你好,看到您提問OAuth2.0網頁授權微信怎麼用java獲取openid
首先需要在微信後台的網頁授權那邊添加你的信任的域名下地址
頁面上獲取code參數
function getQueryString(name){
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
var code = "";
$(function(){
code = getQueryString('code');
。。。。。
3.傳入code調用介面獲取openid
public static String oauth2GetOpenid(String code) {
HttpClient client = null;
String result = "";
try {
client = new DefaultHttpClient();
HttpGet httpget = new HttpGet("https://api.weixin.qq.com/sns/oauth2/access_token?appid="+Constant.WECHATAPPID+"&secret="+Constant.WECHATAPPSECRET+"&code="+code+"&grant_type=authorization_code");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String response = client.execute(httpget, responseHandler);
Object obj = JSONValue.parse(response);
JSONObject jbt = (JSONObject) obj;
result = String.valueOf(jbt.get("openid"));
} catch (Exception e) {
e.printStackTrace();
} finally {
client.getConnectionManager().shutdown();
}
return result;
}
⑧ java怎麼獲取微信的openid
java獲取微信的openid的方法是根據授權code來獲取的,方法如下:
一個Servlet請求 獲取code:
/**
* 根據code取得openId
*
* @param appid 公眾號的唯一標識
* @param secret 公眾號的appsecret密鑰
* @param code code為換取access_token的票據
* @return
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//參數
String code = request.getParameter("code");
if(null != code && !"".equals(code)){
log.info("==============[OAuthServlet]獲取網頁授權code不為空,code="+code);
//根據code換取openId
OAuthInfo oa = WeixinUtil.getOAuthOpenId(Constants.appId,Constants.appSecret,code);
UserInfo info = WeixinUtil.getUserInfo(oa.getAccessToken(), oa.getOpenId());
if(!"".equals(oa) && null != oa){
request.setAttribute("openid", oa.getOpenId());
request.setAttribute("nickname", info.getNickname());
request.getRequestDispatcher("/index.jsp").forward(request, response);
}else{
log.info("==============[OAuthServlet]獲取網頁授權openId失敗!");
}
}else{
log.info("==============[OAuthServlet]獲取網頁授權code失敗!");
}
}
替換相應的APPID APPSECRET SCOPE。
過code換取網頁授權access_token 這里的access_token與基礎獲取的access_token不同
獲取code後,請求以下鏈接獲取access_token:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
具體做法與上面基本一致。更換相對應的值。需要注意的是code可以寫一個Servlet獲取。String code = request.getParameter("code");get/post都可以。
這樣子就會返回一下json格式數據
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
⑨ 小程序後台獲取openId解密的java代碼怎麼寫
小程序後台獲取openId解密的java代碼怎麼寫
//app.js
App({
onLaunch: function() {
wx.login({
success: function(res) {
if (res.code) {
//發起網路請求
wx.request({
url: 'https://test.com/onLogin',
data: {
code: res.code
}
})
} else {
console.log('獲取用戶登錄態失敗!' + res.errMsg)
}
}
});
}
})