一、 介紹
微信支持我們自定義菜單實現一些功能,但是因為微信的頁面顯示是由微信提供的,並不是我們的服務端提供的,所以我們必須按照微信的要求提供數據
微信要求我們需要將要顯示的菜單提前通知到微信,由微信做存儲,顯示菜單的時候,他們會從自己的伺服器上面根據我們傳遞的 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-tw/n/299982.html
微信掃一掃
支付寶掃一掃