微信公众号开发:服务器配置(Java)

article/2025/10/16 19:39:11

由于项目需要微信公众号的开发,弄了老半天,发现也不是那么难弄。

对于微信公众号开发,首先要有开发者权限然后进行基本的配置。

登录进微信公众号平台,首页最下面有个基本配置:

进入基本配置后,会看到两个栏目,一个是公众号开发信息,一个是服务器配置。

这里主要讲如何进行服务器配置,公众号开发信息配置比较简单,就自己去操作。

要配置服务器,要将自己的IP添加到IP白名单,否则微信会将你的消息过滤掉。

因为我已经配置过了服务器,所以页面有点不同,点击修改配置

接下来按照图里面步骤

因为服务器需要公网可以访问的域名并且要80和443端口,可以使用nat映射软件进行内网穿透(花生壳不能固定80端口,已经不能使用)

然后进行服务器校验

看一下官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319

我摘取比较重要的信息:

 

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

参数描述
signature微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp时间戳
nonce随机数
echostr随机字符串

开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

1)将token、timestamp、nonce三个参数进行字典序排序 2)将三个参数字符串拼接成一个字符串进行sha1加密 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

 

意思是说:对微信服务器发过来消息忠token、timestamp、nonce三个参数进行加密处理,然后加密得到的字符串与signature微信加密签名相比较,如果相等则返回echostr随机字符串。


先下载微信官方的示例:https://wximg.gtimg.com/shake_tv/mpwiki/cryptoDemo.zip

下面进行服务器环境搭建:

在刚才下载的微信官方的示例将

SampleCode\SampleCode\Java\src\com\qq\weixin\mp\aes\SHA1.java该类与其依赖类导入项目中,为方便操作可以直接将SampleCode\Java\src下的com包导入进去,后面根据哪些不需要用到的类删除。

 并且将SHA1类改为public,(有可能导入会是中文乱码,重新复制粘贴文字进去即可)

 

新建一个servlet类(get方法用来给微信验证服务器,post用来业务逻辑):

import java.io.IOException;
import java.io.PrintWriter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.qq.weixin.mp.aes.AesException;
import com.qq.weixin.mp.aes.SHA1;/*** Servlet implementation class test*/
@WebServlet("/test")
public class test extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public test() {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 token="somelog";//这里填基本配置中的tokenString jiami="";try {jiami=SHA1.getSHA1(token, timestamp, nonce,"");//这里是对三个参数进行加密} catch (AesException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("加密"+jiami);System.out.println("本身"+signature);PrintWriter out=response.getWriter();if(jiami.equals(signature))out.print(echostr);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub}}

因为官方给的示例,SHA1类中getSHA1方法有四个参数token,  timestamp, nonce, encrypt,但是我们只有三个参数,根据观察代码可知,将第四个参数设置为“”不会影响操作。

所以在调用getSHA1方法时,传入参数是token, timestamp, nonce,""

最后将加密的字符串与signature进行比较,如果相等就返回echostr。

服务器环境即搭建完毕。

点击提交即可,显示提交成功即可

这里需要强调一下,eclipse在自动创建servlet时会给get方法加上

response.getWriter().append("Served at: ").append(request.getContextPath());

这一句一定要删除,否则会一直验证失败。

并且不能自己去结束response的输入流:out.flush()和out.close();会出现超时提示。


http://chatgpt.dhexx.cn/article/5KfUCFKb.shtml

相关文章

微信公众号开发——服务器配置

一、前提 1、购买一台云服务器 域名解析 这里用的宝塔服务 创建域名 绑定到指定的目录 wx.php 代码如下 <?php /** * wechat php test */ //define your token define("TOKEN", "weixin"); $wechatObj new wechatCallbackap…

微信公众号开发--服务号

前言 因公司需要开发一款手机打卡程序&#xff0c;本人没有安卓APP开发经验&#xff0c;所以决定将写个服务号的公众号&#xff0c;集外出打卡&#xff0c;打卡查询等功能; 一&#xff0c;开发前测试帐号申请 以下是官方给出的建议&#xff0c;大家可以多参考参考 1&#xf…

如何使用开发者服务器运维微信公众号

文章目录 1 如何把微信公众号授权给开发者服务器2 如何使用代码把开发者服务器与微信服务器进行关联 很多人都有自己的服务器&#xff0c;特别是对于大学生而言&#xff0c;很多服务器公司都对学生有优惠&#xff0c;例如腾讯云只要1元每月&#xff1a;http://blog.csdn.net/ti…

python 微信公众号开发[1] 后台服务器端配置与公众号开发配置

更新时间&#xff1a;2020年3月7日 微信公众号开发的硬件必备条件&#xff1a;&#xff08;1&#xff09;申请一个公众号 &#xff08;2&#xff09;有公网ip的服务器&#xff08;最好是阿里云&#xff0c;腾讯云等的云服务器&#xff09;&#xff08;3&#xff09;解析到&…

微信小程序微信服务号开发微信公众平台开发前端开发框架

1、Frozen UI 手Q出品&#xff0c;组件更丰富&#xff0c;视觉舒适度也不错&#xff0c;适合我这种前端较生疏&#xff0c;需要开箱即用的程序员。 推荐度&#xff1a;5星 演示地址&#xff1a;FrozenUI Demo 2、WeUI 官方出品&#xff0c;情怀满满&#xff0c;但是组件不够用。…

微信公众号开发流程指南

微信公众号开发流程指南 一.物料准备二.开发须知0.接入验证1.消息类型概括(MsgType)2.申请服务号的原因为账号类型所支持功能不同,职能不同3.当开启服务器配置后,公众号的原始菜单将会失效, 会以自定义菜单为准4.如下文介绍Api中出现Token字样, 则统一为通过AppId和AppSecret获…

微信公众号开发

文章目录 一、微信公众号简介二、注册/登录微信公众号三、功能介绍1、编辑模式&#xff08;个人开发者&#xff0c;无需服务器&#xff09;2、开发模式 四、实战开发1、配置服务器2、模块化 五、获取 access_token1、access_token 是什么&#xff1f;2、获取 access_token 功能…

公众号开发配置,服务号对接第三方服务器配置方法

很多公司企业在注册服务号后&#xff0c;通常需要对接第三方的开发平台&#xff0c;进行一些功能的完善补充。 市面上第三方平台非常之多&#xff0c;但是因微信官方限制&#xff0c;所需要的配置总结下来就这么几点&#xff0c;下面给大家讲解下配置的要点&#xff1a; 一、…

公众号开发

1.本地调试:打开微信开发者工具——》微信开发者工具选项——》更换开发模式——》公众号网页调试 2.使用 http://127.0.0.1:8080 本地调试会 the permission value is offline verifying 解决方法:先在输入框输入 http://demo.open.weixin.qq.com/jssdk&#xff0c;再输入你之…

微信公众号开发(一)服务器及接口的配置

微信公众号开发&#xff08;一&#xff09;服务器及接口的配置 关于微信公众号中的订阅号和服务的区别这里不多加讨论&#xff0c;网上有很多资源可以搜到&#xff0c;这里直接进入正题&#xff0c;如果是个人开发者&#xff0c;这里建议使用测试号进行开发学习&#xff0c;测…

微信公众号开发相关流程及功能介绍

1. 开发前准备 1.1 注册微信公众平台账号 进入的网址&#xff1a;https://mp.weixin.qq.com。 测试号&#xff08;网址&#xff1a;https://mp.weixin.qq.com/debug/cgi-bin/sandbox?tsandbox/login&#xff09;&#xff0c;用户在开发之前可以通过测试号快速测试开发&#…

微信小程序开发 公众号/服务号 方法

微信小程序嵌入公众号/服务号方法 1.公众号开发方法 先去微信公众平台开启公众号选项 然后在页面中加入组件 <official-account bindload"bindload" class"official-account"></official-account> 组件细节 可查 官网文档 文档地址 本地调试…

微信服务号开发说明:测试号申请、自定义菜单添加第三方连接

微信服务号开发方式多种多样&#xff0c;本文对接触过的一种微信服务号开发模式进行记录&#xff0c;作为今后参考的依据。 1.开发模式 本文描述的开发模式如下&#xff1a; 客户或者市场部等申请服务号。开发部开发并发布移动端服务的测试版本至互联网上。使用测试号进行微…

微信公众平台-微信服务号开发

文章目录 背景:一、微信各个平台介绍二、公众平台介绍三、开发前准备四、服务器配置五、服务器验证六、消息接收七、客服消息八、获取素材九、相关工具十、最终效果展示总结 背景: 近期接到了涉及微信开放平台和微信公众平台相关的开发需求&#xff0c;开发过程中踩了许多坑&a…

启动Tomcat闪退的问题

之前启动一直没有问题&#xff0c;今天配置conf/server.xml文件&#xff0c;把我要打开的文件更改了一下就发现它要闪退了&#xff01;然后我去百度搜它闪退的原因&#xff0c;都说是环境变量没有配置好&#xff0c;可是我的是好的啊 然后其实&#xff01;&#xff01;&#x…

windows本地启动tomcat闪退

da开cmd&#xff0c; 进入tomcat所在目录的bin目录&#xff1a; 执行startup.bat 查看设置的环境变量是否正确&#xff1b;如果不正确则在windows中设置正确的相关环境变量即可&#xff1b; 转载于:https://www.cnblogs.com/YuyuanNo1/p/10341340.html

tomcat 闪退/一闪而过 问题

结论 去官网重新下载对应JDK的新版本tomcat&#xff0c;安装解压即可使用。无需配置路径。 资源 tomcat官网下载地址 JDK对应版本 实际经验 原来装好能用的tomcat&#xff0c;上课打开就闪退。 各种查bug找的解决方案都没用&#xff0c;除开最常见的尝试配环境变量和路径…

Tomcat闪退解决方案

问题 Tomcat启动后闪退, tomcat可以通过命令行startup或直接双击startup.bat执行 通常发生闪退时,我们可以尝试在命令行中执行一下startup命令 出现图片上的情况请点击这里 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 如果执行命令行没有明确信息提示,如下图这种…

tomcat闪退问题一些解决办法

1.找不到环境变量 这应该是大多数人遇到的问题&#xff0c;网上有很多配置教程就不多说了 我一开始也是这个问题然后配置完jdk和jre后&#xff0c;发现根本没有jre&#xff0c;然后在网上找了解决办法把jre弄出来了&#xff0c;这个也自行百度&#xff0c;之后依旧还在这个界面…