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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

微信公众号开发者接入

發布時間:2023/12/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信公众号开发者接入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先給自己搞個服務器(微信接入需要擁有自己的服務器資源,就是外網服務器,可以給別人訪問的)
我購買的是阿里云的服務器(最低配置)
服務器系統為:win2012數據中心版


阿里云服務器

服務器環境為:jdk1.7+tomcat7解壓版
開發框架:springmvc+spring+mybatis
構建:maven


我的結構

在這里不解釋如何搭建ssm,網上很多教程。

我的接入方法


接入方法

我的接入口為:weixin,為什么設置method為get以及post是因為微信接入的時候發的是get請求,而如果是消息類型的,發的是post請求。
為什么我用PrintWriter來返回echostr而不是用@ResponseBody來返回,是因為如果返回的是@ResponseBody,它默認返回的是json格式,會給echostr加上雙引號,這樣的話,微信會判斷為不相同而接入不成功。
如果要讓它不加上雙引號,可以給spring-mvc.xml加上


字符串不加雙引號 <bean id="mappingJackson2HttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/json;charset=UTF-8</value> <!-- <value>text/html;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> --> </list> </property> </bean> <bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter" /> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJackson2HttpMessageConverter" /> <ref bean="stringHttpMessageConverter" /> </list> </property> </bean>

加上這個配置后,就不會有雙引號,可是我發現,依舊是接入失敗,所以我嘗試使用PrintWriter返回echostr卻成功,我初出茅廬,就不深究了,能解決就行。

如何判斷是不是微信發來的消息

直接貼源碼,為什么這么做自己研究

import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import javax.servlet.http.HttpServletRequest;public class utils {private final static String TOKEN = "此處填寫你在微信配置的token";public static String SHA1(String decript) {try {MessageDigest digest = java.security.MessageDigest.getInstance("SHA-1");digest.update(decript.getBytes());byte messageDigest[] = digest.digest();StringBuffer hexString = new StringBuffer();for (int i = 0; i < messageDigest.length; i++) {String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);if (shaHex.length() < 2) {hexString.append(0);}hexString.append(shaHex);}return hexString.toString();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return "";}public static boolean checkWeixinReques(String signature,String timestamp,String nonce) {if (signature != null && timestamp != null && nonce != null) {String[] strSet = new String[] { TOKEN, timestamp, nonce };java.util.Arrays.sort(strSet);String key = "";for (String string : strSet) {key = key + string;}L.i(key);String pwd = utils.SHA1(key);L.i(pwd);L.i(signature);return pwd.equals(signature);} else {return false;}} }

登錄微信公眾平臺

打開 開發-->基本配置


打開基本配置

點擊修改配置,填入信息。


修改配置

密文還是明文隨便你,看需求。
填寫完了之后,點擊提交,如果成功的話會提示配置成功!
如果失敗,看看有沒有跑你服務器的weixin.do(為什么是.do后綴名是因為我配置的就是.do訪問,這個網上查,改成什么隨便你)

總結

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

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