成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

使用JAVA開發(fā)微信公眾平臺(tái)之環(huán)境搭建與開發(fā)接入的示例分析-創(chuàng)新互聯(lián)

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

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

一、初始微信公眾平臺(tái)

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

微信公眾平臺(tái)地址:https://mp.weixin.qq.com/

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

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


微信平臺(tái)四大板塊

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

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

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

二、開發(fā)賬號(hào)準(zhǔn)備

1、賬號(hào)注冊(cè)

進(jìn)入微信公眾平臺(tái)https://mp.weixin.qq.com,點(diǎn)擊右上角立即注冊(cè),選擇“服務(wù)號(hào)”或“訂閱號(hào)”注冊(cè)(服務(wù)號(hào)僅限機(jī)構(gòu)用戶注冊(cè),個(gè)人用戶只能選擇訂閱號(hào))

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

2、測試賬號(hào)申請(qǐng)

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

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


測試賬號(hào)界面

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

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

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

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

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

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

① Ngrock:

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

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


ngrock操作

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

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


ngrock操作成功界面

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

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

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

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

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


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

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

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

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

1、填寫服務(wù)器配置

進(jìn)入微信公眾平臺(tái),點(diǎn)擊左側(cè)【開發(fā)——基本配置】,選擇【服務(wù)器配置】。即可進(jìn)入配置頁面:

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


微信平臺(tái)服務(wù)器配置

其中:

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

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

EncodingAESKey:隨機(jī)字符串,如果消息加解密方式采用安全模式才需驗(yàn)證

2、驗(yàn)證消息是否有效

當(dāng)我們點(diǎn)擊提交時(shí),微信服務(wù)器將會(huì)發(fā)送一個(gè)Get請(qǐng)求,到我們上述地址,同時(shí)傳遞四個(gè)參數(shù):

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


微信服務(wù)器Get請(qǐng)求參數(shù)

我們通過檢驗(yàn)signature對(duì)請(qǐng)求進(jìn)行校驗(yàn)(下面有校驗(yàn)方式)。若確認(rèn)此次GET請(qǐng)求來自微信服務(wù)器,請(qǐng)?jiān)瓨臃祷豦chostr參數(shù)內(nèi)容,則接入生效,成為開發(fā)者成功,否則接入失敗。加密/校驗(yàn)流程如下:

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

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

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

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


新建一個(gè)servlet

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

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


獲取上述四個(gè)校驗(yàn)參數(shù)

3、編寫工具類,進(jìn)行校驗(yàn)方法的操作:

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


編寫工具類

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

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


校驗(yàn)步驟

使用sha1加密方法↓

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


sha1加密方法

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

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


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

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

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

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

七、配置公眾平臺(tái)后臺(tái)

進(jìn)入微信后臺(tái)配置相關(guān)信息:

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


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

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

八、源碼共享

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)){
//如果校驗(yàn)成功,將得到的隨機(jī)字符串原路返回
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.對(duì)數(shù)組進(jìn)行排序
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ā)微信公眾平臺(tái)之環(huán)境搭建與開發(fā)接入的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

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

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

廣告

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

成都網(wǎng)站建設(shè)
普定县| 东方市| 丹阳市| 平顶山市| 鹰潭市| 泸定县| 城固县| 特克斯县| 察雅县| 福贡县| 宜黄县| 根河市| 榆中县| 闻喜县| 大理市| 丰顺县| 兴和县| 吕梁市| 康定县| 高淳县| 万州区| 常山县| 九龙县| 贵阳市| 林口县| 梧州市| 洛川县| 轮台县| 南木林县| 荣昌县| 荣昌县| 齐河县| 个旧市| 荣昌县| 抚州市| 永济市| 习水县| 舞钢市| 苏尼特左旗| 霞浦县| 布尔津县|