摘要:注微信服務號的開發可以用的語言有很多,如都可以,我是一名攻城獅,所以下面介紹的開發語言是,言歸正傳,正文微信號的選擇訂閱號,每天一次推送消息,但是高級權限不多。
前言:
本次要講述的是一個本人完整微信服務號開發的經驗分享,微信服務號的作品:請搜索微信號:zjaisino,名稱:愛信諾Aisino一站式服務平臺。(這里聲明,這不是打廣告,只是為了方便各位開花攻城獅朋友配合下面的文章理解)。
注:微信服務號的開發可以用的語言有很多,如Java、PHP、ASP.NET、Ruby、Python、Note.js都可以,我是一名Java攻城獅,所以下面介紹的開發語言是JAVA,言歸正傳,Let"s go
訂閱號,每天一次推送消息,但是高級權限不多。
服務號,每月四次推送消息,但是高級權限多。
所以推廣用途請使用訂閱號,服務用途請使用服務號。
AppID和AppSecret這兩個是公眾號后臺的參數。
access_token是公眾號的全局唯一票據,公眾號調用各接口時都需使用access_token,由上面兩個參數處理得到(注意:處理好7200s的時效性)。
OpenID這是業務處理最核心的參數,(是你的微信跟這個微信號之間的一個唯一的ID,注意無論你是否關注,這個ID都是不變的,而且已經存在)。
我們要處理自己的業務,有自己的后臺工程是必須的,但是如何將微信服務號跟我們的工程建立接入關系呢
URL填寫我們的工程的一個action
Token填寫跟我們工程里面設置的Token參數內容一樣即可
開始接入(端口要是80!)
點擊提交的時候,其實微信服務器是往你填寫的action的傳輸方式是get不是post,所以代碼里根據這個去處理,返回他需要的簽名檢驗結果即可,這樣就接入完成了。
用戶跟工程的交互方式種類大致分兩種:
一種是:文本(Text),一種是:事件(Event)
文本交互,俗稱關鍵字交互
事件交互,里面的種類就挺多,如LOCATION(定位),SCAN(再次關注),subscribe(關注),還有就是菜單的EventKey的響應了等等。
正如你關注的時候,我給你回復的東西就是在subscribe的時候處理的,給你返回
你輸入關鍵字的時候,比如輸入100,我是這么回復給你的
這里舉得兩個例子就是你遇到事件或者關鍵字的時候,你可以如何處理,具體回復等其他業務操作,請參照自身要求。
消息格式有很多種,不過最常用的如下三種
回復文本
回復多圖文
回復多客服,即可輕松打開多客服功能 so easy!
記得寫個工具類來存放這些消息格式的工具方法!
服務號的菜單,大菜單可以有三個,大菜單里面的子菜單最多五個。
菜單的類型兩種:一種是Click菜單,一種是Url菜單。
顧名思義Click菜單就是點擊會傳EventKey給我們工程,Url菜單就是直接超鏈接跳轉性質。
如何生成菜單?
往下Look
/** * 組裝菜單數據 * * @return 返回一個菜單對象 */ public static Menu getMenu(String serverUrl) { //ChildButton是子菜單對象 ChildButton btn11 = new ChildButton(); btn11.setName("個稅計算"); //如果設置type是view,那必須設置url,不要設置key btn11.setType("view"); btn11.setUrl(serverUrl+"gongzishouru.jsp"); ChildButton btn12 = new ChildButton(); btn12.setName("發票查詢"); btn12.setType("view"); btn12.setUrl(serverUrl+"ds_dishuifapiao_search.jsp"); ChildButton btn13 = new ChildButton(); btn13.setName("服務預約"); btn13.setType("click"); btn13.setKey("13"); ChildButton btn14 = new ChildButton(); btn14.setName("我的派單"); btn14.setType("click"); btn14.setKey("14"); ChildButton btn15 = new ChildButton(); btn15.setName("我的賬戶"); btn15.setType("click"); btn15.setKey("15"); ChildButton btn21 = new ChildButton(); btn21.setName("福利專區"); btn21.setType("click"); btn21.setKey("21"); ChildButton btn22 = new ChildButton(); btn22.setName("最新資訊"); btn22.setType("click"); btn22.setKey("22"); ChildButton btn23 = new ChildButton(); btn23.setName("財稅動態"); btn23.setType("click"); btn23.setKey("23"); ChildButton btn24 = new ChildButton(); btn24.setName("會計職場"); btn24.setType("click"); btn24.setKey("24"); ChildButton btn25 = new ChildButton(); btn25.setName("常見問題"); btn25.setType("click"); btn25.setKey("25"); ChildButton btn31 = new ChildButton(); btn31.setName("諾諾介紹"); btn31.setType("view"); btn31.setUrl(serverUrl+"nuonuojieshao.jsp"); ChildButton btn32 = new ChildButton(); btn32.setName("卡換盤專欄"); btn32.setType("view"); btn32.setUrl(serverUrl+"CardChangeDish.jsp"); ChildButton btn33 = new ChildButton(); btn33.setName("產品展示"); btn33.setType("view"); btn33.setUrl(serverUrl+"chanpinzhanshi.jsp"); ChildButton btn34 = new ChildButton(); btn34.setName("網點查詢"); btn34.setType("view"); btn34.setUrl(serverUrl+"wangdianchaxun.jsp"); ChildButton btn35 = new ChildButton(); btn35.setName("我的積分"); btn35.setType("click"); btn35.setKey("35"); //ComplexButton是一級菜單,可以通過setSub_button的方式添加多個子菜單 ComplexButton mainBtn1 = new ComplexButton(); mainBtn1.setName("諾諾服務"); mainBtn1.setSub_button(new ChildButton[] { btn11, btn12, btn13, btn14, btn15}); ComplexButton mainBtn2 = new ComplexButton(); mainBtn2.setName("諾諾資訊"); mainBtn2.setSub_button(new ChildButton[] { btn21, btn22, btn23, btn24, btn25}); ComplexButton mainBtn3 = new ComplexButton(); mainBtn3.setName("關于諾諾"); mainBtn3.setSub_button(new ChildButton[] { btn31, btn32, btn33, btn34, btn35}); //Menu是菜單對象,將所有一級菜單塞入即可 Menu menu = new Menu(); menu.setButton(new Button[] { mainBtn1, mainBtn2, mainBtn3 }); return menu; }
/** * 創建菜單 */ private static void createMenu(String serverUrl) { // 調用接口創建菜單的json并上傳到微信,返回值是結果代碼,0表示成功。 int result = WeixinUtil.createMenu(FastCreateWeixinMenu.getMenu(serverUrl), accessToken); // 判斷菜單創建結果 if (0 == result) System.out.println("菜單創建成功!"); else System.out.println("菜單創建失敗,錯誤碼:" + result); }
菜單生成搞定!
微信用戶如何跟我們業務系統的用戶建立關系這是我們最關心的問題,很簡單,就是我一開頭提到的openID,這個參數可以在用戶跟工程有任何交互的時候,都可以獲取得到,我們可以把openID跟我們的業務用戶ID,做個登錄綁定的操作,其實就是把兩個參數形成一條數據存到數據庫的關系表中即可。
還有一種就是所謂的網頁獲取用戶信息openID(如果你的操作比較復雜不推薦這種做法)。
微信里面打開的界面可以分為三種:
第一種:就是類似你平時點開的微信文章,里面含有點擊文字關注公眾號的那種頁面。(獲取方式,讓運營在公眾號的騰訊平臺里面寫好,然后把url發給你,你放到回復的圖文中即可)
(小細節很多人不知道:文章的內容保存或發布后,再改動里面的內容他的url是不變的)O(∩_∩)O哈哈~
第二種:就是我們自己工程的html,jsp這個做前端的人做個手機自適應就好了。
第三種:就是現在市面上比較火的易企秀第三方炫酷的效果界面,直接做好把url拿過來即可,很簡單。
在我們關注了這個微信號之后,變成了他粉絲。我們可以對這些粉絲進行分組,也可以通過請求獲取這個微信號的所有的分組情況,跟具體某個用戶的所在分組情況。(特別注意:在運營在建立分組的時候,千萬不要隨便建立或者刪除之前的分組,因為分組的ID是類似于數據庫表的遞增索引一樣,用了一次就沒了,也就是你刪掉了一個分組,再建一個跟他名字一模一樣的分組,不要意思他的分組的ID是已經不是原來的ID了,切記)!!!
二維碼微信公眾號里面可以有方法生成帶參數的二維碼,當我們掃描二維碼的時候,我們的工程可以獲取用戶所掃描的二維碼中的參數,從而來根據這個參數去做一些業務操作,如將用戶直接掃描后分組,等其他操作。
所需要的技能JAVA Web工程會搭建,Tomcat服務器會部署,數據庫熟悉,前端Js,Jsp熟悉,Spring MVC框架的使用等
總結:說了這么多,我相信大家多多少少已經對微信服務號的開發流程有個系統性的開發輪廓了,寫這邊文章是對自己經驗的分享,也是對過去的一種總結,后續會不間斷的發表關于Android,微信,iOS,Java相關技術的文章,有興趣的朋友們敬請關注!感謝大家閱讀。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64564.html
閱讀 2954·2021-11-11 16:55
閱讀 515·2021-09-27 13:36
閱讀 1073·2021-09-22 15:35
閱讀 2908·2019-08-30 12:46
閱讀 3125·2019-08-26 17:02
閱讀 1826·2019-08-26 11:56
閱讀 1295·2019-08-26 11:47
閱讀 423·2019-08-23 17:01