1. 程式人生 > >整合SpringBoot微信公眾平臺授權登入測試

整合SpringBoot微信公眾平臺授權登入測試

 /*
     * 微信公眾平臺授權登入
     */
    @RequestMapping(value = "/wxLogin", method = RequestMethod.GET)
    public String wxLogin(HttpServletRequest request, HttpServletResponse response) throws ClientProtocolException, IOException{
    String myPublicDomain = "http://19516980.ngrok.io";//內網對映域名,使用ngrok
//String backUrl = myPublicDomain + "/wxCallBack";

/*  在確保微信公眾賬號擁有授權作用域(scope引數)的許可權的前提下(服務號獲得高階介面後,預設擁有scope引數中的snsapi_base和snsapi_userinfo)
* ,引導關注者開啟如下頁面: 
* https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

* 尤其注意:
* 由於授權操作安全等級較高,所以在發起授權請求時,微信會對授權連結做正則強匹配校驗,
* 如果連結的引數順序不對,授權頁面將無法正常訪問
* 跳轉回調redirect_uri,應當使用https連結來確保授權code的安全性

*/
    System.out.println("wxLogin------------");
String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + WxAuthUtil.APPID
+ "&redirect_uri=" + URLEncoder.encode(myPublicDomain)
+ "&response_type=code"
+ "&scope=snsapi_userinfo"
+ "&state=STATE#wechat_redirect";
/*try {
response.sendRedirect(url);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
JSONObject json = WxAuthUtil.doGetJson(url);
/*try {
json = WxAuthUtil.doGetJson(url);
} catch (ClientProtocolException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}*/

//獲取code值
String code = json.getString("code");
System.out.println("json.code----------"+code);
/* 獲取code後,請求以下連結獲取access_token: 
* 這裡通過code換取的是一個特殊的網頁授權access_token,與基礎支援中的access_token(該access_token用於呼叫其他介面)不同
*/
String url_1 = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + WxAuthUtil.APPID
+ "&secret=" + WxAuthUtil.APPSECRET
+ "&code=" + code
+ "&grant_type=authorization_code";
JSONObject jsonObject = WxAuthUtil.doGetJson(url_1);
/*try {
jsonObject = WxAuthUtil.doGetJson(url_1);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
String openid = jsonObject.getString("openid");
String tokentest= jsonObject.getString("access_token");

/*  
* 拉去使用者的資訊
*/
String infoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" + tokentest
+ "&openid=" + openid
+ "&lang=zh_CN";
JSONObject userInfo = WxAuthUtil.doGetJson(infoUrl);
/*try {
userInfo = WxAuthUtil.doGetJson(infoUrl);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
//1、使用微信使用者資訊直接登入,無需註冊和繫結
request.setAttribute("info", userInfo);
//request.getRequestDispatcher("/index.jsp").forward(request, response);
    return "testIndex";
    }

相關推薦

整合SpringBoot公眾平臺授權登入測試

 /*     * 微信公眾平臺授權登入     */    @RequestMapping(value = "/wxLogin", method = RequestMethod.GET)    public String wxLogin(HttpServletRequest

公眾平臺授權登入(java版)

微信公眾平臺授權登入獲取使用者openid。 微信公眾平臺地址:https://mp.weixin.qq.com/ 微信平臺配置: 2、修改配置 2.1  業務域名配置 JS介面安全域名、網頁授權域名 同理操作就可以了,正常操作業務域名就完成了,剩下兩個步驟直

公眾平臺授權登入

連結地址: https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx59f95d5febc26d71&redirect_ur

公眾平臺網頁登入授權多次重定向跳轉,導致code使用多次問題

背景:微信網站開發   昨天我負責的一個專案忽然出現了一個十分詭異的bug,進行微信授權登入的時候請求code的時候安卓手機會多次重定向調轉我的介面接收code的介面(redirect_uri 微信請求調轉接收code的的介面,加了utl.encode()),也就是我這邊預設請求了多次這個介面,然而蘋果手機

使用.net 操作 公眾平臺 —— 第三方登入 —— .net MVC

目錄   1. 使用.net 操作 微信公眾平臺 —— 接入   2. 使用.net 操作 微信公眾平臺 —— 生成微信選單   3. 使用.net 操作 微信公眾平臺 —— 接收並回複用戶訊息   4. 使用.n

使用.net 操作 公眾平臺 —— 第三方登入

目錄   1. 使用.net 操作 微信公眾平臺 —— 接入   2. 使用.net 操作 微信公眾平臺 —— 生成微信選單   3. 使用.net 操作 微信公眾平臺 —— 接收並回複用戶訊息   4. 使用.n

公眾平臺模擬登入,獲取賬號資訊

class wxOpenLogin{ private $cookie_file ="";//cookie臨時儲存檔案 private $username = ""; //微信賬號 private $pwd = "";<span style="white-space:pre">

Asp.net 如何實現公眾授權登入

第一個類:封裝好微信配置檔案 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Web; using Newton

公眾授權登入 JAVA

微信授權登入 java 首先 騰訊那麼大的公司 文件寫的那麼low 微信那麼火 demo寫的那麼差 我就想說一句  微信簡直就是在歧視Java   我這邊自己整合了下 微信支付和微信登入 java的程式碼  我打包出來了 不是讓你們直接使用的 是需要你們自己看看 借鑑的 h

java實現公眾授權登入獲取使用者資訊流程

參考地址微信公眾號開發文件:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432 前提:需要申請認證的微信公眾號;獲取對應的APPID和APPSECRET;並且還需要獲取到使用者資訊許可權

公眾授權登入(java實現)

步驟: 1、 使用第三方工具,生成內網對映 2、 微信公眾平臺使用測試賬號 3、 測試賬號中需要配置自己的域名,並關注該臨時測試使用的公眾號 4、 下載一個瀏覽器的二維碼外掛 4、 編碼測試 使用花生殼進行內網穿透 注意,因為我使用的是808

公眾授權登入weixin4j開發

登入微信公眾號配置網頁授權目錄 在專案中引入maven依賴 <dependency> <groupId>com.foxinmy</groupId> <artifactId>weixin4j-m

公眾授權登入

說明:如果使用者在微信客戶端中訪問第三方網頁,公眾號可以通過微信網頁授權機制,來獲取使用者基本資訊,進而實現業務邏輯。 1、授權回撥域名 首先,先登入微信公眾平臺填寫授權回撥頁面域名(可以申請公眾平臺測試賬號進行開發),回撥頁面域名是你的第三方跳轉域名,不需要加http,

公眾授權登入一(laravel)

namespace App\Http\Controllers; use Illuminate\Http\Request; use Validator; use Session; use App\Http\Requests; use App\Http\Controller

公眾授權登入之二(tp5)

public function _initialize(){//檢視使用者是否授權登入過 沒有的話跳轉到授權登入頁面 if(empty(session::get('user'))) { $this->redirect('user/login');

公眾平臺開發——授權登入(OAuth2.0)

1、OAuth2.0簡介   OAuth(開放授權)是一個開放標準,允許使用者讓第三方應用訪問該使用者在某一網站上儲存的私密的資源(如照片,視訊,聯絡人列表),而無需將使用者名稱和密碼提供給第三方應用。   允許使用者提供一個令牌,而不是使用者名稱和密碼來訪問他們存放在特

Java公眾平臺開發之OAuth2.0網頁授權

col nts har 順序 pan getcount iba unionid syn 根據官方文檔點擊查看在微信公眾號請求用戶網頁授權之前,開發者需要先到公眾平臺官網中的“開發 - 接口權限 - 網頁服務 - 網頁帳號 - 網頁授權獲取用戶基本信息”的配置選項中,修改授權

公眾平臺開發(二)網頁授權

是否 color 平臺開發 基本 業務 自動跳轉 str gpo 點擊 微信公眾平臺OAuth2.0授權詳細步驟如下: 1. 用戶關註微信公眾賬號。2. 微信公眾賬號提供用戶請求授權頁面URL。3. 用戶點擊授權頁面URL,將向服務器發起請求4. 服務器詢問用戶是否同意授權

公眾平臺開發,模板消息,網頁授權JS-SDK,二維碼生成(4)

支持 post 網頁 信息 行業 使用步驟 獲取 公眾 符號 微信公眾平臺開發,模板消息,什麽是模板消息,模板消息接口指的是向用戶發送重要的服務通知,只能用於符合場景的要求中去,如信用卡刷卡通知,購物成功通知等等。不支持廣告營銷,打擾用戶的消息,模板消息類有固定的模板,每個

ASP.NET MVC5&公眾平臺整合開發實戰(響應式布局、JQuery Mobile,Wind

特色 href jquer 入門 騰訊 範圍 最全 mvc 5 前沿 ASP.NET MVC5&微信公眾平臺整合開發實戰(響應式布局、JQuery Mobile,Windows Azure、微信核心開發)網盤地址:https://pan.baidu.com/s/1Y