国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
二、開(kāi)發(fā)賬號(hào)準(zhǔn)備
2、測(cè)試賬號(hào)申請(qǐng)
1、外網(wǎng)映射工具
四、微信公眾平臺(tái)數(shù)據(jù)交互原理
五、開(kāi)發(fā)模式接入
1、填寫(xiě)服務(wù)器配置
2、驗(yàn)證消息是否有效
六、開(kāi)發(fā)接入后臺(tái)代碼
七、配置公眾平臺(tái)后臺(tái)
八、源碼共享
1、 Servlet源碼(只保留doGet部分):
Copy其中的getSha1加密方法):" >2、 CheckUtil源碼(可直接Copy其中的getSha1加密方法):
首頁(yè) 微信小程序 微信開(kāi)發(fā) 用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

Apr 04, 2017 am 10:32 AM

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

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

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

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

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

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

簡(jiǎn)單的對(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ù)能力開(kāi)發(fā),而在服務(wù)方面,兩者開(kāi)發(fā)模式完全相同,只不過(guò)服務(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。因蘋(píng)果和谷歌的限制,“應(yīng)用號(hào)”未上線便已夭折,取而代之的是適度閹割功能的“微信小程序”,而其堪比原生APP的操作體驗(yàn),也使得小程序成為時(shí)下大火的開(kāi)發(fā)方向。而杰瑞教育全新的H5開(kāi)發(fā)課程,也將加入時(shí)下火爆的微信小程序開(kāi)發(fā)。

二、開(kāi)發(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)用戶(hù)注冊(cè),個(gè)人用戶(hù)只能選擇訂閱號(hào))

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

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

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

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

測(cè)試賬號(hào)界面

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

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

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

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

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

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

① Ngrock:

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

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

ngrock操作

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

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

ngrock操作成功界面

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

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

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

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

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入


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

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

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

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

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

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

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

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

其中:

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

Token:開(kāi)發(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開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

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

我們通過(guò)檢驗(yàn)signature對(duì)請(qǐng)求進(jìn)行校驗(yàn)(下面有校驗(yàn)方式)。若確認(rèn)此次GET請(qǐng)求來(lái)自微信服務(wù)器,請(qǐng)?jiān)瓨臃祷?a href="http://www.miracleart.cn/wiki/1343.html" target="_blank">echostr參數(shù)內(nèi)容,則接入生效,成為開(kāi)發(fā)者成功,否則接入失敗。加密/校驗(yàn)流程如下:

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

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

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

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

新建一個(gè)servlet

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

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

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

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

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

編寫(xiě)工具類(lèi)

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

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

校驗(yàn)步驟

使用sha1加密方法↓

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

sha1加密方法

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

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

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

至此,Servlet及Check工具類(lèi),編寫(xiě)完成。

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

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

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

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

用JAVA開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入

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

點(diǎn)擊提交,微信將發(fā)送Get指令到Servlet,并調(diào)用doGet方法,進(jìn)行我們編寫(xiě)的驗(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"; //開(kāi)發(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.將加密后的字符串,與微信傳來(lái)的加密簽名比較,返回結(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[] = {&#39;0&#39;,&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;,&#39;6&#39;,&#39;7&#39;,&#39;8&#39;,&#39;9&#39;,
&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;,&#39;f&#39;};
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開(kāi)發(fā)微信公眾平臺(tái)(一)-環(huán)境搭建與開(kāi)發(fā)接入的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話題

Laravel 教程
1601
29
PHP教程
1502
276
如何使用JDBC處理Java的交易? 如何使用JDBC處理Java的交易? Aug 02, 2025 pm 12:29 PM

要正確處理JDBC事務(wù),必須先關(guān)閉自動(dòng)提交模式,再執(zhí)行多個(gè)操作,最后根據(jù)結(jié)果提交或回滾;1.調(diào)用conn.setAutoCommit(false)以開(kāi)始事務(wù);2.執(zhí)行多個(gè)SQL操作,如INSERT和UPDATE;3.若所有操作成功則調(diào)用conn.commit(),若發(fā)生異常則調(diào)用conn.rollback()確保數(shù)據(jù)一致性;同時(shí)應(yīng)使用try-with-resources管理資源,妥善處理異常并關(guān)閉連接,避免連接泄漏;此外建議使用連接池、設(shè)置保存點(diǎn)實(shí)現(xiàn)部分回滾,并保持事務(wù)盡可能短以提升性能。

了解Java虛擬機(jī)(JVM)內(nèi)部 了解Java虛擬機(jī)(JVM)內(nèi)部 Aug 01, 2025 am 06:31 AM

TheJVMenablesJava’s"writeonce,runanywhere"capabilitybyexecutingbytecodethroughfourmaincomponents:1.TheClassLoaderSubsystemloads,links,andinitializes.classfilesusingbootstrap,extension,andapplicationclassloaders,ensuringsecureandlazyclassloa

如何使用Java的日歷? 如何使用Java的日歷? Aug 02, 2025 am 02:38 AM

使用java.time包中的類(lèi)替代舊的Date和Calendar類(lèi);2.通過(guò)LocalDate、LocalDateTime和LocalTime獲取當(dāng)前日期時(shí)間;3.使用of()方法創(chuàng)建特定日期時(shí)間;4.利用plus/minus方法不可變地增減時(shí)間;5.使用ZonedDateTime和ZoneId處理時(shí)區(qū);6.通過(guò)DateTimeFormatter格式化和解析日期字符串;7.必要時(shí)通過(guò)Instant與舊日期類(lèi)型兼容;現(xiàn)代Java中日期處理應(yīng)優(yōu)先使用java.timeAPI,它提供了清晰、不可變且線

比較Java框架:Spring Boot vs Quarkus vs Micronaut 比較Java框架:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

前形式攝取,quarkusandmicronautleaddueTocile timeProcessingandGraalvSupport,withquarkusoftenpernperforminglightbetterine nosserless notelless centarios.2。

了解網(wǎng)絡(luò)端口和防火墻 了解網(wǎng)絡(luò)端口和防火墻 Aug 01, 2025 am 06:40 AM

NetworkPortSandFireWallsworkTogetHertoEnableCommunication whereSeringSecurity.1.NetWorkPortSareVirtualendPointSnumbered0-655 35,with-Well-with-Newonportslike80(HTTP),443(https),22(SSH)和25(smtp)sindiessingspefificservices.2.portsoperateervertcp(可靠,c

垃圾收集如何在Java工作? 垃圾收集如何在Java工作? Aug 02, 2025 pm 01:55 PM

Java的垃圾回收(GC)是自動(dòng)管理內(nèi)存的機(jī)制,通過(guò)回收不可達(dá)對(duì)象釋放堆內(nèi)存,減少內(nèi)存泄漏風(fēng)險(xiǎn)。1.GC從根對(duì)象(如棧變量、活動(dòng)線程、靜態(tài)字段等)出發(fā)判斷對(duì)象可達(dá)性,無(wú)法到達(dá)的對(duì)象被標(biāo)記為垃圾。2.基于標(biāo)記-清除算法,標(biāo)記所有可達(dá)對(duì)象,清除未標(biāo)記對(duì)象。3.采用分代收集策略:新生代(Eden、S0、S1)頻繁執(zhí)行MinorGC;老年代執(zhí)行較少但耗時(shí)較長(zhǎng)的MajorGC;Metaspace存儲(chǔ)類(lèi)元數(shù)據(jù)。4.JVM提供多種GC器:SerialGC適用于小型應(yīng)用;ParallelGC提升吞吐量;CMS降

比較Java構(gòu)建工具:Maven vs. Gradle 比較Java構(gòu)建工具:Maven vs. Gradle Aug 03, 2025 pm 01:36 PM

Gradleisthebetterchoiceformostnewprojectsduetoitssuperiorflexibility,performance,andmoderntoolingsupport.1.Gradle’sGroovy/KotlinDSLismoreconciseandexpressivethanMaven’sverboseXML.2.GradleoutperformsMaveninbuildspeedwithincrementalcompilation,buildcac

以身作則,解釋說(shuō)明 以身作則,解釋說(shuō)明 Aug 02, 2025 am 06:26 AM

defer用于在函數(shù)返回前執(zhí)行指定操作,如清理資源;參數(shù)在defer時(shí)立即求值,函數(shù)按后進(jìn)先出(LIFO)順序執(zhí)行;1.多個(gè)defer按聲明逆序執(zhí)行;2.常用于文件關(guān)閉等安全清理;3.可修改命名返回值;4.即使發(fā)生panic也會(huì)執(zhí)行,適合用于recover;5.避免在循環(huán)中濫用defer,防止資源泄漏;正確使用可提升代碼安全性和可讀性。

See all articles