微信公众平台开发(4)--填写服务器配置并验证有效性

简介: 本文目录1. 前言2. 填写服务器配置3. 验证有效性3.1 构建项目3.2 接受微信验证消息3.3 提交验证3.4 启用服务器配置4. 小结

1. 前言

上一篇文章中说了,微信会将用户消息发送到我们(开发者)指定的服务器上。


所以我们需要通过微信公众平台,将我们的服务器信息填写上,以便微信给我们转发消息。


另外,微信也会验证下我们填写的服务器信息是否正确有效。


2. 填写服务器配置

登录微信公众平台,点击【设置与开发】-【基本配置】,点击【修改配置】如下图:


然后依次填入下列信息,注意Token自己设置一个就行,EncodingAESKey可以随机生成一个,加解密方式为了方便先选择明文模式。


最重要的是URL,我们使用之前选择的公网域名(或IP),后面的wx-server和checkToken分别代表接收验证消息的项目名和接口地址。



3. 验证有效性

此时如果我们点击提交,微信会提醒我们【请求URL超时】,这是因为微信会调用URL对应的接口来验证我们配置的服务器是否有效,也就是能不能正常的响应微信发出的消息。



3.1 构建项目

接下我们先创立wx-server项目,我们使用Maven快速构建一个Spring Boot项目,pom.xml配置如下。


注意我们用到了web和lombok两个配置,对Spring Boot和lombok不了解的同学还是需要先去了解下。


<project xmlns="http://maven.apache.org/POM/4.0.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<parent>

 <groupId>org.springframework.boot</groupId>

 <artifactId>spring-boot-starter-parent</artifactId>

 <version>2.2.5.RELEASE</version>

 <relativePath /> <!-- lookup parent from repository -->

</parent>

<groupId>cn.pandabrother</groupId>

<artifactId>wx-server</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>war</packaging>

<properties>

 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

 <java.version>1.8</java.version>

 <maven-jar-plugin.version>3.0.0</maven-jar-plugin.version>

</properties>

<dependencies>

 <dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-web</artifactId>

 </dependency>

 <dependency>

  <groupId>org.projectlombok</groupId>

  <artifactId>lombok</artifactId>

 </dependency>

</dependencies>

<build>

 <plugins>

  <plugin>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-maven-plugin</artifactId>

  </plugin>

 </plugins>

</build>

</project>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

3.2 接受微信验证消息

接下来开发控制器,接受微信发送的消息:


@Controller

public class CheckController {

@RequestMapping("/checkToken")

@ResponseBody

public String checkToken(@RequestParam("echostr") String echostr) {

 return echostr;

}

}

1

2

3

4

5

6

7

8

根据微信官方要求:开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败,我们此处直接返回echostr表示验证成功。


然后为了正常启动项目,配置下application.yml:


server:

  port: 80 #端口

  servlet:

     context-path: /wx-server

1

2

3

4

并添加启动类:


@SpringBootApplication

public class WxServerApplication {

public static void main(String[] args) {

 SpringApplication.run(WxServerApplication.class, args);

}

}

1

2

3

4

5

6

3.3 提交验证

启动WxServerApplication ,此时我们的项目就会监听80端口,监听地址为/wx-server/checkToken。


此时点击【基本配置】页面的【提交】按钮,因为我们的程序能正确返回要求的echostr,所以此次提交成功,我们填写的服务器配置验证通过。




3.4 启用服务器配置

服务器配置生效后,还需要启用,点击上图中的【启用】,系统提示如下,也就是说启用后,微信会正式将用户发送到公众号的消息,自动转发到我们配置的服务器URL上。


此处点击【确定】启用即可。



4. 小结

至此,我们配置的服务器已经跟微信建立了联系,另外我们也搭建了一个SpringBoot项目,用于后续开发微信公众号相关的功能。

相关文章
|
4月前
|
小程序 PHP
微信公众号开发(一)打通服务器与微信之间的通信
说来惭愧PHP做了这么久,好像就没有从头开发过一个微信公众号,这次刚好有机会从头接入开发一个完整的公众号,也不能说完整,但是这些微信的接口我基本上都试一试~看看大概是什么情况。 首先:打通服务器与微信之间的通信。
56 0
|
1月前
|
开发者
微信公众平台开发基本配置
微信公众平台开发基本配置
88 0
|
5天前
|
Linux 网络安全 开发工具
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
11 0
|
1月前
|
移动开发 JavaScript
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
41 0
|
1月前
|
移动开发 小程序
微信小程序配置服务器域名和业务域名
微信小程序配置服务器域名和业务域名
281 0
|
3月前
|
XML Go 数据格式
【微信公众号开发】基于golang的公众号开发——接入消息自动回复接口
【微信公众号开发】基于golang的公众号开发——接入消息自动回复接口
138 0
|
4月前
|
前端开发 开发者
【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!
【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!
52 0
|
4月前
|
小程序 PHP 开发者
微信公众号开发(八)生成带参数二维码,以及将二维码下载至本地
微信的二维码真是个神奇的东西。在我们开发中,应用也是很多~ 用户扫描带场景值(参数)二维码时,可能推送以下两种事件:
64 1
|
4月前
|
XML 移动开发 小程序
微信公众号开发(七)微信h5跳转小程序及小游戏示例
最近公司做活动,需要从h5页面跳转至微信小游戏。 当时接到这个需求的时候,就在想,这玩意能相互跳转么? 后来百度了一下,还真行。
115 1
|
4月前
|
小程序 PHP
微信公众号开发(六)微信支付(发红包、企业支付到零钱)需要证书请求示例
这里最主要的就是curlpost请求的时候需要带上证书。否则请求会失败。
60 0