日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java微信学习 接入

發(fā)布時(shí)間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java微信学习 接入 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

現(xiàn)在實(shí)習(xí)的公司要做微信開發(fā),然而一直沒安排任務(wù),所以一直在看微信接口,記錄下學(xué)習(xí)的內(nèi)容

微信開發(fā)肯定要看的就是微信公眾平臺(tái)開發(fā)者文檔,上面有每種接口的調(diào)用格式,剛開始學(xué)習(xí)的時(shí)候自己申請(qǐng)了一個(gè)訂閱號(hào),個(gè)人類型的,這個(gè)玩玩還可以,學(xué)習(xí)的話,貌似有點(diǎn)接口沒有權(quán)限調(diào)用,所以我學(xué)習(xí)的時(shí)候是用的微信測(cè)試號(hào),至于測(cè)試號(hào)的申請(qǐng),很簡(jiǎn)單,在文檔里面,開發(fā)者工具下面就可以看到。

微信開發(fā),第一步,接入指南,看文檔上面的

當(dāng)然,弄這個(gè)之前要有一個(gè)服務(wù)器,或者就應(yīng)用放在網(wǎng)上,微信后臺(tái)其實(shí)和網(wǎng)站開發(fā)后臺(tái)差不多

url填寫域名加action的地址,比如說我的一個(gè)servlet ,

@WebServlet("/msg") public class TestWeixin extends HttpServlet {

那么我的url就應(yīng)該填寫 域名/msg

token是用來校驗(yàn)請(qǐng)求是不是微信服務(wù)器發(fā)過來的,這里填寫的token就是程序里面用的token,

至于EncodingAESKey 隨機(jī)生成,我自己測(cè)試接口的時(shí)候沒用這個(gè),是以明文形式,真正開發(fā)的時(shí)候應(yīng)該會(huì)用這個(gè),我還沒接觸正在的微信開發(fā)。

填寫完提交后,微信服務(wù)器會(huì)根據(jù)填寫的url發(fā)get請(qǐng)求,帶上4個(gè)參數(shù)signature,timestamp,nonce,echostr

參數(shù)的作用,我就抄開發(fā)者文檔的:

signature:微信加密簽名,signature結(jié)合了開發(fā)者填寫的token參數(shù)和請(qǐng)求中的timestamp參數(shù)、nonce參數(shù)。

timestamp:時(shí)間戳

nonce:隨機(jī)數(shù)

echostr:隨機(jī)字符串

?

加密/校驗(yàn)流程如下: 1. 將token、timestamp、nonce三個(gè)參數(shù)進(jìn)行字典序排序 2. 將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密 3. 開發(fā)者獲得加密后的字符串可與signature對(duì)比,標(biāo)識(shí)該請(qǐng)求來源于微信

加密后的字符串和signature相等,則返回echostr,此時(shí)校驗(yàn)成功

?

根據(jù)上面的步驟,可以看到,微信服務(wù)器是判斷是否校驗(yàn)成功 是 根據(jù) 是否返回?echostr這個(gè)隨機(jī)字符串的,

如果不進(jìn)行校驗(yàn),直接把得到的echostr返回給微信服務(wù)器也是可以校驗(yàn)成功的。當(dāng)然,最好還是進(jìn)行校驗(yàn)。

校驗(yàn)的代碼,就是新建一個(gè)servlet

在doGet方法里面進(jìn)行校驗(yàn)

@WebServlet("/msg") public class TestWeixin extends HttpServlet {private static final long serialVersionUID = 1L;private String TOKEN = "luolei";/*** @see HttpServlet#HttpServlet()*/public TestWeixin() {super();// TODO Auto-generated constructor stub }/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubString signature = request.getParameter("signature");String timestamp = request.getParameter("timestamp");String nonce = request.getParameter("nonce");String echostr = request.getParameter("echostr");String[] str={TOKEN,timestamp,nonce};Arrays.sort(str);String yanzheng = str[0]+str[1]+str[2];String result = DigestUtils.sha1Hex(yanzheng.getBytes());if(result.equals(signature)){response.getWriter().print(echostr);}}

上面的 token換成自己的token

還有DigestUtils.sha1Hex()方法 是commons-codec ?jar包里面的類。可以自己搜索怎么sha1加密,

剛剛說了,可以不進(jìn)行校驗(yàn),doget里面只留:

String echostr = request.getParameter("echostr");

response.getWriter().print(echostr);

這兩行也是可以校驗(yàn)成功的

?

最后上傳服務(wù)器,我是用bae應(yīng)用引擎,上傳應(yīng)用,將得到的二級(jí)域名+action的key填到url里面,token按照情況自己填寫,就可以了

轉(zhuǎn)載于:https://www.cnblogs.com/luolei/p/4682647.html

總結(jié)

以上是生活随笔為你收集整理的java微信学习 接入的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。