微信公众平台开发(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项目,用于后续开发微信公众号相关的功能。

上一篇:WebService--使用JDK开发WebService


下一篇:[20170516]11G use_large_pages参数2.txt