<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • 使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析-創(chuàng)新互聯(lián)

            小編給大家分享一下使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

            在可克達拉等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作定制設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡營銷推廣,成都外貿(mào)網(wǎng)站制作,可克達拉網(wǎng)站建設(shè)費用合理。

            一、初始微信公眾平臺

            微信公眾平臺,即我們平時所說的“公眾號”,曾用名“官方平臺”、“媒體平臺”,但最終命名為“公眾平臺”。從微信的命名我可以發(fā)現(xiàn),公眾平臺不只是官方、媒體使用的平臺,而是對所有公眾都開放的統(tǒng)一平臺。

            微信公眾平臺地址:https://mp.weixin.qq.com/

            微信公眾平臺公分4大板塊:訂閱號、服務號、小程序、企業(yè)號。按照微信2016年公開課規(guī)劃,企業(yè)號后續(xù)將與企業(yè)微信合并,因此我們主要針對前三部分開始講解:

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            微信平臺四大板塊

            簡單的對比一下前三者的區(qū)別以及本次課程即后續(xù)課程的講解重點:

            1、訂閱號和服務號均為傳統(tǒng)意義的“公眾號”,具有消息群發(fā)能力,詳細區(qū)別可在官方平臺查看:http://kf.qq.com/faq/140806zARbmm140826M36RJF.html我們將注重于服務能力開發(fā),而在服務方面,兩者開發(fā)模式完全相同,只不過服務號可以使用更多的服務接口,而訂閱號則是“閹割版”的服務號。因此,后續(xù)課程我們將使用服務號為案例進行操作。

            2、微信小程序,原本為“微信應用號”,即一個根植在微信生態(tài)系統(tǒng)內(nèi)的APP。因蘋果和谷歌的限制,“應用號”未上線便已夭折,取而代之的是適度閹割功能的“微信小程序”,而其堪比原生APP的操作體驗,也使得小程序成為時下大火的開發(fā)方向。而杰瑞教育全新的H5開發(fā)課程,也將加入時下火爆的微信小程序開發(fā)。

            二、開發(fā)賬號準備

            1、賬號注冊

            進入微信公眾平臺https://mp.weixin.qq.com,點擊右上角立即注冊,選擇“服務號”或“訂閱號”注冊(服務號僅限機構(gòu)用戶注冊,個人用戶只能選擇訂閱號)

            注冊時需填寫一系列信息,根據(jù)提示填寫即可,此處不做贅述。

            2、測試賬號申請

            如果暫時不想注冊賬號,或者無法注冊服務號,可選擇官方提供的測試賬號申請。申請地址:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login點擊后掃描二維碼,即可獲得一個測試賬號,擁有服務號全部權(quán)限。

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            測試賬號界面

            三、開發(fā)環(huán)境準備

            1、外網(wǎng)映射工具

            微信公眾平臺在訪問后臺時,必須提供能夠正確訪問的外網(wǎng)地址,微信平臺對后臺URL的要求有兩點:

            ①必須能夠用公網(wǎng)訪問②必須使用80端口

            要實現(xiàn)以上兩點,我們可以選擇購買外網(wǎng)服務器,例如:阿里云、百度云、騰訊云…都是不錯的選擇。如果沒有服務器,可以選擇用外網(wǎng)映射工具,將我們的內(nèi)網(wǎng)鏈接映射為公網(wǎng),比較不錯的映射軟件有:花生殼、ngrok、nat123等…

            這幾款軟件都可以百度很容易搜索到并下載,下面簡單講解一下用法:

            ① Ngrock:

            進入dos環(huán)境,切換到ngrock所在盤符,輸入ngrock8080回車:

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            ngrock操作

            回車后等待一會,即可得到公網(wǎng)鏈接,下圖所示陰影區(qū)域給出的鏈接,即可直接訪問本機127.0.0.1:8080下的鏈接內(nèi)容,分別是http協(xié)議和https協(xié)議對應的地址:

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            ngrock操作成功界面

            ②花生殼、nat123,均可安裝軟件后,在軟件中操作,詳情可查看百度經(jīng)驗:http://jingyan.baidu.com/article/363872ec361d3f6e4ba16ff9.html此處不做贅述

            四、微信公眾平臺數(shù)據(jù)交互原理

            搭建好公網(wǎng)訪問地址后,我們自己開發(fā)的后臺代碼就可以放到公網(wǎng)地址了,那么用戶是怎么樣訪問到我們的代碼呢?

            下面我們來看一下微信公眾平臺的數(shù)據(jù)交互原理:

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            從上圖可以看到,微信公眾平臺實際只是起到一個橋梁作用,實際處理業(yè)務、提供服務的代碼,依然是放在我們自己的服務器或者公網(wǎng)映射上面。

            那么,我們就可以在我們自己的電腦(服務器)上面編寫后臺代碼,并通過映射工具提供公網(wǎng)能夠訪問的URL,然后將此URL綁定到微信后臺即可。

            五、開發(fā)模式接入

            下面將進入實際開發(fā)過程,我們可以參考官方提供的開發(fā)文檔:https://mp.weixin.qq.com/wiki

            1、填寫服務器配置

            進入微信公眾平臺,點擊左側(cè)【開發(fā)——基本配置】,選擇【服務器配置】。即可進入配置頁面:

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            微信平臺服務器配置

            其中:

            URL:即我們上述所說的后臺服務器公網(wǎng)訪問地址

            Token:開發(fā)者自定的驗證口令

            EncodingAESKey:隨機字符串,如果消息加解密方式采用安全模式才需驗證

            2、驗證消息是否有效

            當我們點擊提交時,微信服務器將會發(fā)送一個Get請求,到我們上述地址,同時傳遞四個參數(shù):

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            微信服務器Get請求參數(shù)

            我們通過檢驗signature對請求進行校驗(下面有校驗方式)。若確認此次GET請求來自微信服務器,請原樣返回echostr參數(shù)內(nèi)容,則接入生效,成為開發(fā)者成功,否則接入失敗。加密/校驗流程如下:

            下面,我們實現(xiàn)代碼操作。

            六、開發(fā)接入后臺代碼

            1、使用MyEclipse創(chuàng)建Web項目,并新建一個servlet:

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            新建一個servlet

            2、在servlet的doGet方法中,獲取上述四個校驗參數(shù):

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            獲取上述四個校驗參數(shù)

            3、編寫工具類,進行校驗方法的操作:

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            編寫工具類

            校驗步驟,參考上述【五-2】三大步操作流程

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            校驗步驟

            使用sha1加密方法↓

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            sha1加密方法

            4、 Servlet中調(diào)用校驗方法,并驗證結(jié)果,如果檢驗成功,將得到的隨機字符串eahostr原路返回結(jié)果給微信平臺:

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            Servlet中調(diào)用校驗方法

            至此,Servlet及Check工具類,編寫完成。

            5、啟動Tomcat,將Servlet的本地地址(例如本機為:localhost:8080/WeiXin/servlet/WeiXinServlet)進行公網(wǎng)映射,參照上述第三大部分內(nèi)容,進行公網(wǎng)映射,確定公網(wǎng)地址能夠正確訪問。

            我將直接將將代碼放到公網(wǎng)服務器進行訪問。獲得如下地址

            七、配置公眾平臺后臺

            進入微信后臺配置相關(guān)信息:

            使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析


            微信后臺配置相關(guān)信息

            點擊提交,微信將發(fā)送Get指令到Servlet,并調(diào)用doGet方法,進行我們編寫的驗證操作,最后如果順利返回隨機字符串,則綁定成功。

            八、源碼共享

            1、 Servlet源碼(只保留doGet部分):
            public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            String signature = request.getParameter("signature");
            String timestamp = request.getParameter("timestamp");
            String nonce = request.getParameter("nonce");
            String echostr = request.getParameter("echostr");
            PrintWriter out = response.getWriter();
            if(CheckUtil.checkSignature(signature, timestamp, nonce)){
            //如果校驗成功,將得到的隨機字符串原路返回
            out.print(echostr);
            }
            }
            2、 CheckUtil源碼(可直接Copy其中的getSha1加密方法):
            package com.jredu.util;
            import java.security.MessageDigest;
            import java.util.Arrays;
            public class CheckUtil {
            public static final String  tooken = "jredu100"; //開發(fā)者自行定義Tooken
            public static boolean checkSignature(String signature,String timestamp,String nonce){
            //1.定義數(shù)組存放tooken,timestamp,nonce
            String[] arr = {tooken,timestamp,nonce};
            //2.對數(shù)組進行排序
            Arrays.sort(arr);
            //3.生成字符串
            StringBuffer sb = new StringBuffer();
            for(String s : arr){
            sb.append(s);
            }
            //4.sha1加密,網(wǎng)上均有現(xiàn)成代碼
            String temp = getSha1(sb.toString());
            //5.將加密后的字符串,與微信傳來的加密簽名比較,返回結(jié)果
            return temp.equals(signature);
            }
            public static String getSha1(String str){
            if(str==null||str.length()==0){
            return null;
            }
            char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
            try {
            MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
            mdTemp.update(str.getBytes("UTF-8"));
            byte[] md = mdTemp.digest();
            int j = md.length;
            char buf[] = new char[j*2];
            int k = 0;
            for (int i = 0; i < j; i++) {
            byte byte0 = md[i];
            buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
            buf[k++] = hexDigits[byte0 & 0xf];}
            char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9',
            'a','b','c','d','e','f'};
            try {
            MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
            mdTemp.update(str.getBytes("UTF-8"));
            byte[] md = mdTemp.digest();
            int j = md.length;
            char buf[] = new char[j*2];
            int k = 0;
            for (int i = 0; i < j; i++) {
            byte byte0 = md[i];
            buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
            buf[k++] = hexDigits[byte0 & 0xf];
            }
            return new String(buf);
            } catch (Exception e) {
            // TODO: handle exception
            return null;
            }
            }
            }

            以上是“使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

            新聞名稱:使用JAVA開發(fā)微信公眾平臺之環(huán)境搭建與開發(fā)接入的示例分析-創(chuàng)新互聯(lián)
            當前網(wǎng)址:http://www.jbt999.com/article16/dhcedg.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、動態(tài)網(wǎng)站網(wǎng)站收錄、服務器托管小程序開發(fā)、網(wǎng)站策劃

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

            成都網(wǎng)站建設(shè)

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 91无码影院 | 视频在线播放一区二区 | 无码上床观看 | 国产视频在线播放 | 亚洲婷婷成人激久久月天 |