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