1. 程式人生 > >Springboot開發微信公眾號(三)

Springboot開發微信公眾號(三)

Access_token

一、Access_token
access_token是公眾號的全域性唯一介面呼叫憑據,公眾號呼叫各介面時都需使用access_toke。access_token的有效時間時2個小時,並且呼叫的次數是有限的,需要定時獲取,並配置全域性。通過訪問介面的方式獲取access_token.在之後的開發中會很常見,呼叫介面。
1.新增httpclient處理

 		    <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
            </dependency>

2.定時獲取



import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.SQLException;

import javax.annotation.PostConstruct;

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * @author 成小新
 * @ProjectName wechat
 * @Description: 定時器
 * @date 2018/11/13:38 PM
 * @email 
[email protected]
*/ @Component @EnableScheduling public class Scheduler { private static String access_token; //讀取appid和appsecret @Autowired private ReadApplicationUntil readApplicationUntil; private static ReadApplicationUntil readApplicationUntils; @PostConstruct public void init() { readApplicationUntils = readApplicationUntil; } /** * 定時獲取access_token * * @throws SQLException */ @Scheduled(fixedDelay = 100) public void setAccessToken() { String grant_type = "client_credential"; String AppId = readApplicationUntils.getAppid(); String secret = readApplicationUntils.getAppsecret(); String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=" + grant_type + "&appid=" + AppId + "&secret=" + secret; try { URL urlGet = new URL(url); HttpURLConnection http = (HttpURLConnection) urlGet.openConnection(); http.setRequestMethod("GET"); // 必須是get方式請求 http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); http.setDoOutput(true); http.setDoInput(true); http.connect(); InputStream is = http.getInputStream(); int size = is.available(); byte[] jsonBytes = new byte[size]; is.read(jsonBytes); String message = new String(jsonBytes, "UTF-8"); JsonObject returnData = new JsonParser().parse(message).getAsJsonObject(); access_token = returnData.get("access_token").getAsString(); is.close(); } catch (Exception e) { e.printStackTrace(); } } public String getAccessToken() { return access_token; } }

3.讀取yml配置檔案工具類



import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author 成小新
 * @Title: ReadApplicationUNtil
 * @ProjectName wechat
 * @Description: 獲取yml配置檔案的屬性值
 * @date 2018/10/303:36 PM
 * @email [email protected]
 */
@Component
//接收application.yml中的wechat下面的屬性
@ConfigurationProperties(prefix = "wechat")
public class ReadApplicationUntil {
    private String token;
    private String appid;
    private String appsecret;

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getAppid() {
        return appid;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public String getAppsecret() {
        return appsecret;
    }

    public void setAppsecret(String appsecret) {
        this.appsecret = appsecret;
    }
}

4.測試類



import com.xbjs.wechat.Utils.Scheduler;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class WechatApplicationTests {
    @Autowired
    private Scheduler scheduler;




    @Test
    public void token() {
        scheduler.setAccessToken();
        System.out.println(scheduler.getAccessToken());
        System.out.println("--------------");


    }

}
看圖

在這裡插入圖片描述

相關推薦

Springboot發微公眾

Access_token 一、Access_token access_token是公眾號的全域性唯一介面呼叫憑據,公眾號呼叫各介面時都需使用access_toke。access_token的有效時間時2個小時,並且呼叫的次數是有限的,需要定時獲取,並配置全域性。

springboot框架發微公眾之訊息的使用以文字訊息和圖文訊息為例

流程圖 程式碼實現 封裝各種訊息的屬性 響應訊息基類 package com.gzc.weixin.message.response; /** * * @Description: 響應訊息基類(公眾賬號→普通使用者) * @Parameters: * @Return: *

SpringBoot發微公眾

import java.io.BufferedReader; import java.io.Closeable; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import j

springboot框架發微公眾之自定義選單的使用

關於自定義選單,微信為我們提供了幾個介面分別是建立、查詢和刪除。我們平時使用最多的就是建立選單了,往往我們執行了建立選單的程式碼後,選單並不會當即在我們關注過的公眾號上顯示出來,我們可以通過重新關注的方法,來檢視我們建立或更改後的選單。下面就來跟筆者來學一學這些介面的使用方法吧 一、由於這幾個介

springboot框架發微公眾之訊息的接受與響應

在開發之前我們要先知道使用者傳送的資訊是先傳送到微信伺服器,微信伺服器在以xml的格式傳送給進行公眾號 開發流程圖 程式碼實現 控制層程式碼 /** * 微信核心控制器(驗證服務號是否合法,以及訊息轉發都需要通過此controller) */ package com.

springboot框架發微公眾之連線微伺服器

前幾個月研究了一下用springboot開發微信公眾號,現在做一下整理總結 開發準備 1.申請微信公眾平臺測試號(測試號適用於開發階段) 2.有jdk和開發工具(這裡筆者選擇jdk1.8和STS) 流程圖 程式碼實現 1.新建springboot專案,在controller層建立一個

教你如何用node.js發微公眾

內容簡介 本文章簡單介紹瞭如何用node.js開發微信公眾號。主要內容包括signature的驗證,access_token的生成,微信事件的接收,還有各種api的呼叫。 準備工作 開發前需要安裝好node.js,因為我是基於express框架開發的,所以裝了express(框架按自己的需求選擇),需要

java發微公眾--測試申請、微與java程式碼初步互動

一、申請測試號 個人不能夠免費申請服務號,訂閱號有很多限制,介面許可權出來基本的幾乎沒有,如圖, 在微信公眾平臺,檢視介面許可權 那麼怎麼使用服務號的介面許可權呢?微信推出了測試號,交給大家使用,開通的步驟是: 1.在微信平臺頁面,在服務號中,點選開發者文件 2

Java發微公眾——開發請求校驗程式

開發IDE:MyEclipse或Eclipse或IDEA都可以,我現在用的是MyEclipse。 請求校驗流程分析 上一篇中我們講了微信開發環境的搭建,下面就來寫請求校驗程式的開發,目的是是為了驗證訊息的確來自微信伺服器。 開發者提交資訊後,微信伺服器將傳送GET

Java發微公眾——微開發環境搭建

1.開發語言使用Java 2.使用微信介面測試賬號進行本地測試 3.使用natapp(原ngrok)將本地地址對映到外網地址實現微信公眾號的本地除錯 準備工作 最近學習微信公眾平臺的開發,在申請一個微信公眾號的時候,發現如果不是公司或組織只能申請訂閱號(並且是個

Java發微公眾--授權網頁獲取使用者資訊

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

Java發微公眾--微開發環境搭建

原文地址: https://blog.csdn.net/rongxiang111/article/details/78765514 1.開發語言使用Java  2.使用微信介面測試賬號進行本地測試  3.使用natapp(原ngrok)將本地地址對映到外網地址實現微信

Nodejs+Koa2+雲服務ECS 發微公眾之環境配置

硬體準備工作 1. 本人採用阿里雲的雲伺服器,購買了入門級雲服務ECS(293元每年); 2.針對伺服器進行認證,設定個人伺服器密碼; 3.購買資料盤,並將其掛載於雲伺服器之上(建議掛載在/home下),並對其進行分割槽配置(本人購買的20g,就不分割槽啦); 以上幾

使用JAVA發微公眾平臺——環境搭建與開發接入

iges 微信平臺 校驗 後臺服務 結果 png 交互 package app 一、 初始微信公眾平臺 微信公眾平臺,即我們平時所說的“公眾號”,曾用名“官方平臺”、“媒體平臺”,但最終命名為&ldq

Cocos Creator發微小遊戲實戰練習篇

目錄 cocos creator練習專案介紹 我的開發環境: 使用cocos creator製作過程 一:新建cocos creator工程 二:製作解析度選擇 三: 指令碼語言選擇 四:程式碼如何組織 五:遊戲邏輯實現 六:cocos creato

史上最強SpringBoot接入微公眾測試整體流程

第一步:申請一個測試的公眾號 來吧,動動你的小手點選這個>>>>>>>>>>測試公眾號的申請網址:微信測試公眾號入口 第二步:進入了介面是

java發微公眾支付JSAPI

https://www.cnblogs.com/gopark/p/9394951.html,這篇文章寫的已經很詳細了。 下面寫一下自己的思路: 1.首先下載demo,地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 2.de

django學習之路發微公眾

開發微信公眾號 我們可以將之前建立的myblog來完成這件事情。我們之前建立了專案myblog,並在myblog中新建了應用blog。現在我們只需要兩步就可完成微信公眾號token的驗證。 第一步:

利用H5發微公眾

enc 兩個 寫入 iss mps rep ast htm chang 一、 首先授權配置 公眾號設置 --》功能設置 設置業務域名! 這裏的MP_verify_w7tdZrafqhkK9Mcj.txt文件,需要放到你項目的根目錄下,例子:你的項目war包叫 tes

vux+vuex+vue+Es6發微公眾的坑

賦值 問題 ack 組件 公眾 rip cor es6 變量 初次開發微信公眾號遇到很多問題,可能是基礎不怎麽牢靠,最近幾天一直在看vue的東西,現在就來慢慢介紹vux和vue這個騷東西的用法: 細看文檔一步步來, npm install vux --save 安裝vux這