成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

微信服務(wù)號開發(fā)的完整人性化版攻略

kevin / 1816人閱讀

摘要:注微信服務(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ù)號。

關(guān)鍵參數(shù)理解

AppIDAppSecret這兩個(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)存在)。

服務(wù)號接入工程

我們要處理自己的業(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ù)多圖文


回復(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拿過來即可,很簡單。

微信服務(wù)號的關(guān)注用戶

在我們關(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ù)庫熟悉,前端JsJsp熟悉,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

相關(guān)文章

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<