1. 程式人生 > >微信開發學習總結(二)——微信開發入門(轉載)

微信開發學習總結(二)——微信開發入門(轉載)

轉自:https://www.cnblogs.com/xdp-gacl/p/5151857.html

  上一篇《微信開發學習總結(一)——微信開發環境搭建》我們已經完成了微信開發的準備工作,準備工作完成之後,就要開始步入正題了。

一、微信公眾平臺的基本原理

  在開始做之前,先簡單介紹了微信公眾平臺的基本原理。

  微信伺服器就相當於一個轉發伺服器,終端(手機、Pad等)發起請求至微信伺服器,微信伺服器然後將請求轉發給我們的應用伺服器。應用伺服器處理完畢後,將響應資料回發給微信伺服器,微信伺服器再將具體響應資訊回覆到微信App終端。

  通訊協議為:HTTP

  資料傳輸格式為:XML

  具體的流程如下圖所示:

  

  來一張更加直觀的圖吧:

  

  我們需要做的事情,就是對微信伺服器轉發的HTTP請求做出響應。具體的請求內容,我們按照特定的XML格式去解析,處理完畢後,也要按照特定的XML格式返回。

二、微信公眾號接入

  在微信公眾平臺開發者文件上,關於公眾號接入這一節內容在接入指南上寫的比較詳細的,文件中說接入公眾號需要3個步驟,分別是:

  1、填寫伺服器配置
  2、驗證伺服器地址的有效性
  3、依據介面文件實現業務邏輯

  其實,第3步已經不能算做公眾號接入的步驟,而是接入之後,開發人員可以根據微信公眾號提供的介面所能做的一些開發。

  第1步中伺服器配置包含伺服器地址(URL)、Token和EncodingAESKey。

  伺服器地址即公眾號後臺提供業務邏輯的入口地址,目前只支援80埠,之後包括接入驗證以及任何其它的操作的請求(例如訊息的傳送、選單管理、素材管理等)都要從這個地址進入。接入驗證和其它請求的區別就是,接入驗證時是get請求,其它時候是post請求;

  Token可由開發者可以任意填寫,用作生成簽名(該Token會和介面URL中包含的Token進行比對,從而驗證安全性);

  EncodingAESKey由開發者手動填寫或隨機生成,將用作訊息體加解密金鑰。本例中全部以未加密的明文訊息方式,不涉及此配置項。

  第2步,驗證伺服器地址的有效性,當點選“提交”按鈕後,微信伺服器將傳送一個http的get請求到剛剛填寫的伺服器地址,並且攜帶四個引數:

  

  接到請求後,我們需要做如下三步,若確認此次GET請求來自微信伺服器,原樣返回echostr引數內容,則接入生效,否則接入失敗。

  1. 將token、timestamp、nonce三個引數進行字典序排序
  2. 將三個引數字串拼接成一個字串進行sha1加密
  3. 開發者獲得加密後的字串可與signature對比,標識該請求來源於微信

  下面我們用Java程式碼來演示一下這個驗證過程

  使用IDE(Eclipse或者IntelliJ IDEA)建立一個JavaWeb專案,這裡我使用的是IntelliJ IDEA,專案目錄結構如下圖所示:

  

相關推薦

Lucene學習總結:Lucene的總體架構

Lucene總的來說是: 一個高效的,可擴充套件的,全文檢索庫。 全部用Java實現,無須配置。 僅支援純文字檔案的索引(Indexing)和搜尋(Search)。 不負責由其他格式的檔案抽取純文字檔案,或從網路中抓取檔案的過程。 在Lucene in action

開發學習總結——開發入門轉載

轉自:https://www.cnblogs.com/xdp-gacl/p/5151857.html   上一篇《微信開發學習總結(一)——微信開發環境搭建》我們已經完成了微信開發的準備工作,準備工作完成之後,就要開始步入正題了。 一、微信公眾平臺的基本原理   在開始

開發學習總結開發入門(公眾號接入以及access_token獲取)

public class WeixinUtil {    private static Logger log = LoggerFactory.getLogger(WeixinUtil.class);    /**     * 發起https請求並獲取結果     */    public static JSO

開發學習總結——開發入門

一、微信公眾平臺的基本原理   在開始做之前,先簡單介紹了微信公眾平臺的基本原理。   微信伺服器就相當於一個轉發伺服器,終

開發學習總結——自定義選單5——個性化選單介面

一、個性化選單介面說明 為了幫助公眾號實現靈活的業務運營,微信公眾平臺新增了個性化選單介面,開發者可以通過該介面,讓公眾號的不同使用者群體看到不一樣的自定義選單。該介面開放給已認證訂閱號和已認證服務號。 開發者可以通過以下條件來設定使用者看到的選單: 1、使用者標籤(開發者的

開發學習總結——自定義選單4——自定義選單事件推送

一、自定義選單事件推送介面說明 使用者點選自定義選單後,微信會把點選事件推送給開發者,請注意,點選選單彈出子選單,不會產生上報。請注意,第3個到第8個的所有事件,僅支援微信iPhone5.4.1以上版本,和Android5.4以上版本的微信使用者,舊版本微信使用者點選後將沒有迴應,開

開發學習總結——自定義選單3——自定義選單刪除介面

自定義選單刪除介面 使用介面建立自定義選單後,開發者還可使用介面刪除當前使用的自定義選單。另請注意,在個性化選單時,呼叫此介面會刪除預設選單及全部個性化選單。 請求說明 http請求方式:GET https://api.weixin.qq.com/cgi-bin/menu/d

開發學習總結——自定義選單2——自定義選單查詢介面

自定義選單查詢介面 使用介面建立自定義選單後,開發者還可使用介面查詢自定義選單的結構。另外請注意,在設定了個性化選單後,使用本自定義選單查詢介面可以獲取預設選單和全部個性化選單資訊。 請求說明 http請求方式:GET https://api.weixin.qq.com/cg

開發學習總結——自定義選單1——自定義選單建立介面

一、自定義選單建立介面說明 自定義選單能夠幫助公眾號豐富介面,讓使用者更好更快地理解公眾號的功能。開啟自定義選單後,公眾號介面如圖所示: 請注意: ①自定義選單最多包括3個一級選單,每個一級選單最多包含5個二級選單。 ②一級選單最多4個漢字,二級選單最多7個漢字,多出來的部分將

開發學習總結——素材管理1—獲取臨時素材和新增永久素材

這裡需要說一下圖片,語音,視訊的回覆訊息構造,這三種訊息構造時的都需要一個mediaId,而這個mediaId是通過素材管理介面上傳多媒體檔案得到的,為了構造圖片,語音,視訊的這幾種回覆訊息,我事先準備好了測試素材,如下圖所示: 客服介面圖文推送上傳圖片 在傳送圖文訊息時,我們需要新

開發學習總結——訊息管理2-接受普通訊息和被動回覆使用者訊息

上一節內容: 微信開發學習總結(三)——訊息管理(1) https://blog.csdn.net/qq_29914837/article/details/82903594 訊息管理具有的各個子模組功能,現在我們將一個詳細介紹如何使用 一、接受普通訊息介面介紹 1.1

開發學習總結——訊息管理1

上一節內容: 微信開發學習總結(二)——微信開發環境準備(2) https://blog.csdn.net/qq_29914837/article/details/82896861 接收普通訊息 當普通微信使用者向公眾賬號發訊息時,微信伺服器將POST訊息的XML資料包到開

開發學習總結——自定義選單——自定義選單建立介面

一、自定義選單建立介面說明 自定義選單能夠幫助公眾號豐富介面,讓使用者更好更快地理解公眾號的功能。開啟自定義選單後,公眾號介面如圖所示: 請注意: ①自定義選單最多包括3個一級選單,每個一級選單最多包含5個二級選單。 ②一級選單最多4個漢字,二級選單最多7個漢

開發學習總結——開發環境搭建轉載

轉自:https://www.cnblogs.com/xdp-gacl/p/5149171.html   目前移動開發處於比較火的的趨勢,很多的開發者都躍躍欲試,目前移動App開發領域主要分為以下幾種型別      我在平時的工作中接觸得比較多的就是基於Android的

開發學習總結——開發環境搭建

目前移動開發處於比較火的的趨勢,很多的開發者都躍躍欲試,目前移動App開發領域主要分為以下幾種型別    我在平時的工作中接觸得比較多的就是基於Android的Native App開發和基於微信公眾號的Light App開發,今天就來帶領大家快速進入微信公眾號的開發領域.一、微信開發環境搭建工欲善其事,必先利

SpringCloud開發學習總結—— 結合註解的AOP示例

分析 urn 需要 開發 tostring ole ngs artifact tex   面向切面編程,通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。AOP是OOP的延續,是軟件開發中的一個熱點,也是Spring框架中的一個重要內容,是函數式編程的一種衍生

SpringCloud開發學習總結—— 客戶端負載均衡Ribbon

均衡 spring java www ref discovery 聯合 方式 嘗試   通過上一章《SpringCloud開發學習總結(三)—— 服務治理Eureka》,我們已經搭建起微服務架構中的核心組件——服務註冊中心(包括單點模式和高可用模式)。同時還註冊了一個服務,

Typescript開發學習總結附大量程式碼

如果評定前端在最近五年的重大突破,`Typescript`肯定能名列其中,重大到各大技術論壇、大廠面試都認為`Typescript`應當是前端的一項必會技能。作為一名訊息閉塞到被同事調侃成“新石器時程式碼農”的我,也終於在2019年底上車了`Typescript`。使用的一年間整理了許多的筆記和程式碼片段,花

javaweb學習總結(十一)——使用Cookie進行會話管理

緩存 利用 iter() 自然 web har oca main end 一、會話的概念   會話可簡單理解為:用戶開一個瀏覽器,點擊多個超鏈接,訪問服務器多個web資源,然後關閉瀏覽器,整個過程稱之為一個會話。  有狀態會話:一個同學來過教室,下次再來教室,我們會知道這個

oracle逐步學習總結之oracle數字函式和日期函式基礎四

  原創作品,轉自請註明出處:https://www.cnblogs.com/sunshine5683/p/10140716.html 繼上篇總結,繼續進行總結: 以下下數字函式: 1、abs(n):返回數字n的絕對值 2、acos(n):返回數字的反餘弦值 3、asin(n):返回數字