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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java微信学习 接入

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

現在實習的公司要做微信開發(fā),然而一直沒安排任務,所以一直在看微信接口,記錄下學習的內容

微信開發(fā)肯定要看的就是微信公眾平臺開發(fā)者文檔,上面有每種接口的調用格式,剛開始學習的時候自己申請了一個訂閱號,個人類型的,這個玩玩還可以,學習的話,貌似有點接口沒有權限調用,所以我學習的時候是用的微信測試號,至于測試號的申請,很簡單,在文檔里面,開發(fā)者工具下面就可以看到。

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

當然,弄這個之前要有一個服務器,或者就應用放在網上,微信后臺其實和網站開發(fā)后臺差不多

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

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

那么我的url就應該填寫 域名/msg

token是用來校驗請求是不是微信服務器發(fā)過來的,這里填寫的token就是程序里面用的token,

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

填寫完提交后,微信服務器會根據填寫的url發(fā)get請求,帶上4個參數signature,timestamp,nonce,echostr

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

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

timestamp:時間戳

nonce:隨機數

echostr:隨機字符串

?

加密/校驗流程如下: 1. 將token、timestamp、nonce三個參數進行字典序排序 2. 將三個參數字符串拼接成一個字符串進行sha1加密 3. 開發(fā)者獲得加密后的字符串可與signature對比,標識該請求來源于微信

加密后的字符串和signature相等,則返回echostr,此時校驗成功

?

根據上面的步驟,可以看到,微信服務器是判斷是否校驗成功 是 根據 是否返回?echostr這個隨機字符串的,

如果不進行校驗,直接把得到的echostr返回給微信服務器也是可以校驗成功的。當然,最好還是進行校驗。

校驗的代碼,就是新建一個servlet

在doGet方法里面進行校驗

@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加密,

剛剛說了,可以不進行校驗,doget里面只留:

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

response.getWriter().print(echostr);

這兩行也是可以校驗成功的

?

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

轉載于:https://www.cnblogs.com/luolei/p/4682647.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。