一、 介紹
微信支持我們自定義菜單實現一些功能,但是因為微信的頁面顯示是由微信提供的,並不是我們的服務端提供的,所以我們必須按照微信的要求提供數據
微信要求我們需要將要顯示的菜單提前通知到微信,由微信做存儲,顯示菜單的時候,他們會從自己的服務器上面根據我們傳遞的 token 來決定顯示哪個公眾號的按鈕
所以自定義菜單 需要我們自己編寫我們自己的後台頁面,提供一個後台接口,在我們的後台將要添加的按鈕的內容發送到騰訊服務器,騰訊服務器做存儲
具體參考開發文
1.1 流程
首先官網獲取到 appid 和開發者密碼 編寫自己的服務器 在自己的服務器內部調用微信提供的接口 獲取 ACCES_TOKEN 在自己的服務器內部調用微信創建自定義菜單的按鈕地址,將 自己的ACCES_TOKEN替換掉地址地址中的值,然後按照微信要求傳遞對應格式的 菜單 json 數據即可 訪問微信公眾號,使用菜單
1.2 請求地址
1.2.1 獲取 ACCES_TOKEN 的地址
GET 請求 grant_type為固定值 appid 為我們的微信 id secret 為我們的開發者密碼 開發者密碼獲取方式:後台設置的基本設置中開啟開發者密碼,掃碼後獲取,注意服務器不存儲這個內容,我們需要自己存儲,否則只能重置,最後添加白名單,只有白名單中的 ip 地址才可以訪問這些接口 注意: 此接口有調用次數限制 一天200次
1.2.2 創建按鈕的地址
POST 請求 ACCESS_TOKEN為我們上面方法獲取到的
1.2.3 發送的數據類型

參數說明
所有的按鈕在點擊後會將請求發送至我們的基本服務器地址,消息類型為 event 類型

二、 服務器搭建
此處服務器未使用數據庫,而是使用假數據
2.1 pom

2.2 controller


2.3AccessToken

2.4 WeiXinUtil




2.5 MyX509TrustManager

2.6 Menu

2.7 Button

2.8 ClickButton

2.9 ViewButton

2.10 CommonButton

2.11 啟動服務器,測試
我們需要將項目發布到白名單地址的服務器上面才可以,然後訪問我們添加菜單的接口地址 測試即可
三、 使用菜單
微信的按鈕使用,view 的點擊後會跳轉到對應的地址 click 類型的點擊後會發送數據到我們的服務器(地址為我們基礎配置中的地址),相當於聊天方式發送了特定的內容,只不過消息類型不是文本類型
[CreateTime=1516763250, EventKey=clickkey, Event=CLICK, ToUserName=gh_ea92b17cb9e9, FromUserName=oUuptwrJudIfdihz1Z_T1AciMahs, MsgType=event]
其中MsgType就是消息類型,為固定值event 如果消息類型為 event, 則EventKey代表的就是發送過來的內容(相當於文本消息的 content),這個內容就是我們當初創建按鈕時候設置的 key 的內容 Event 參數對應的值 則代表按鈕的 type 所以我們只需要判斷用戶發送的是什麼類型的請求,獲取到對應的內容,然後根據預先定好的內容,執行對應的業務邏輯操作即可
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/299982.html
微信掃一掃
支付寶掃一掃