微服務架構【SpringBoot+SpringCloud+VUE】四 || 實戰項目-微信服務



本教程實戰項目主要基於微信公眾號的開發講解微服務的實戰開發,整個過程中會講解如何拆分微服務,以及各微服務組件在實戰項目中的應用。
首先,我們創建一個springboot項目,為了后期各服務間的RPC調用,我們把整個項目拆分為三個子工程。XXX-service為服務的業務實現,同樣遵循MVC架構,XXX-model為RPC調用接口的實體類,XXX-feign為RPC調用接口,下面的項目中會詳細介紹這樣拆分為三個子工程的目的。

1、創建父工程open-weixin

父工程僅做版本的統一依賴,項目依賴包根據項目需求進行引入,切記把以前項目的所有依賴都引入,避免引入過多無用包,以及包沖突。

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <modules>
        <module>weixin-service</module>
        <module>weixin-model</module>
        <module>weixin-feign</module>
    </modules>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
        <relativePath/>
    </parent>
    <groupId>com.kevin</groupId>
    <artifactId>open-weixin</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <maven.test.skip>true</maven.test.skip>
        <!-- spring -->
        <spring-cloud.version>Hoxton.SR5</spring-cloud.version>
        <spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version>
        <!--projects-->
        <commons-beanutils.version>1.9.4</commons-beanutils.version>
        <hutool-all.version>4.6.5</hutool-all.version>
        <mybatis-plus.version>3.3.2</mybatis-plus.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <!--spring cloud-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--spring cloud alibaba-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--工具類-->
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>${commons-beanutils.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>${hutool-all.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

2、創建子工程weixin-service

weixin-service子工程為一個springboot項目,所以我們創建一個springboot子工程。創建其余兩個子工程的目的主要要分離RPC調用接口;該項目基於微信公眾號開發,所以需要引入微信公眾號的一個開源框架,本教程使用的是weixin-java-mp,當然也有其他優秀的開源框架,根據自己需求選用。

2.1、項目依賴

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>com.kevin</groupId>
        <artifactId>open-weixin</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>weixin-service</artifactId>
    <dependencies>
        <!--spring boot web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--微信公眾號框架-->
        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-mp</artifactId>
            <version>${weixin-java-mp.version}</version>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>3.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.github.jedis-lock</groupId>
            <artifactId>jedis-lock</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>
</project>

目前,我們僅需要接入微信公眾號端,所以引入了mp的包,mp框架demo需要redis,相關依賴也需要引入,以上依賴包已經能滿足我們目前的需求,后續根據項目的需求逐漸增加,再次提醒大家,切記一次性引入所有常用的包。

2.2、微信公眾號初識

如果沒有微信公眾號開發經驗的同學可以先看一下微信公眾號官方文檔,了解微信公眾號開發流程。了解完之后我們基於mp的demo快速上手,下載mp框架demo,下載之后,我們把demo復制到我們的weixin-service項目中。復制后目錄結構如下:

alt weixin01

2.3、微信公眾號參數申請

登陸微信公眾號開發平台,找到開發者工具

alt weixin02

進入公眾平台測試賬號

alt weixin03

獲取自己測試賬號的appId、appsecret,URL為回調地址,需要外網可以訪問(使用外網映射工具生成)、Token值自己輸入

alt weixin04

至此,微信公眾號測試參數申請完成,下面進行公眾號的接入。

2.4、參數配置

上節我們獲取到微信公眾號參數,接下來把獲取的參數配置到項目的application.yml配置文件中,需要替換為自己的appId、secret、token配置內容如下:

logging:
  level:
    root: warn
    com.kevin.weixin.service: info
    com.kevin.weixin.service.repository: debug
    org.springframework.web: INFO
    com.kevin.weixin.service.wx.map: DEBUG
    me.chanjar.weixin: DEBUG
wx:
  mp:
    useRedis: false
    redisConfig:
      host: 127.0.0.1
      port: 6379
    configs:
      - appId: wx11111111
        secret: 11111111
        token: kevin
        aesKey:

2.5、外網映射

下載一個外網映射工具,把我們本地的項目映射到外網地址,如下圖所示,我本地項目的9005端口已經被映射到了yn.free.qydev.com域名

alt weixin05

2.6、微信公眾號服務端接入

啟動項目,並將項目中WxPortalController的接口填入到微信公眾平台的URL中,如圖所示:

alt weixin06

點擊提交時,微信端會調用URL地址,進行服務端的驗證,服務端會打印出如下日志:

接收到來自微信服務器的認證消息:[ff64816b307eec715166cca735cbddd035a80f3b, 1598194834, 1720798230, 7056734206944775639]

公眾平台提交會提示配置成功信息,至此,微信公眾號已成功接入我們自己的服務端。

3、學習交流QQ群【883210148】

alt QQ群

4、關注微信公眾號,免費獲取文檔及資源


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM