springboot接入微信支付,SpringBoot項目 + Maven + 企業微信登陸授權登陸

 2023-11-19 阅读 28 评论 0

摘要:SpringBoot項目 + Maven + 企業微信授權項目背景需求描述準備一. 建立SpringBoot項目開始1.創建新的Maven工程(創建父工程)2.選擇左側Maven項目,直接下一步,我沒有使用提供的選項,不是用也無妨3.填寫項目名稱4.填寫工程名字5.如果目錄不存在,點擊OK自動創建了6.父工程

SpringBoot項目 + Maven + 企業微信授權

  • 項目背景
  • 需求描述
    • 準備
    • 一. 建立SpringBoot項目
        • 開始
            • 1.創建新的Maven工程(創建父工程)
            • 2.選擇左側Maven項目,直接下一步,我沒有使用提供的選項,不是用也無妨
            • 3.填寫項目名稱
            • 4.填寫工程名字
            • 5.如果目錄不存在,點擊OK自動創建了
            • 6.父工程創建完成請欣賞
            • 7.刪除父工程不需要的目錄結構
            • 8.創建一個Maven子模塊
            • 9.這時創建的就是子模塊
            • 10.這里建立的是子模塊,要選擇父工程信息
            • 11.看好目錄層級,應該在父工程目錄下面,沒問題點擊Finish完成
            • 12.子模塊創建完成了,請欣賞
            • 13.我們先配置一下父工程的pom
            • springboot中pom文件詳解
            • springboot一些重要 POM 文件的具體說明
            • 添加pom配置-父級依賴
            • 添加pom配置-jar版本號聲明配置
            • 添加pom配置-進入jar坐標
            • 添加pom配置-dependencyManagement
            • 14.繼續搞子模塊,此時此模塊目錄結構缺少層級,可以手動補全
            • 15.我們在web層創建一個類,隨便寫個接口測試一下,測試成功那么項目就算搭建成功~
    • 二. 企業微信授權
          • 企業微信授權三個步驟:
            • 準備:
            • 1.獲取code參數
            • 2.獲取獲取access_token
            • 3.通過code和access_token獲取用戶信息
            • 代碼展示:

因公司項目需求,從而開發的此項目,水平有限,此博客僅供參考及個人學習總結,不喜勿噴.
有任何問題可直接私信我,還請多多指教~

項目背景

本項目是一個數據中臺-可視化數據分析系統, 通過企業微信->控制臺->企業應用入口進入該系統.各個部門負責人進入系統可以查看該部門的基本信息,及各種業績數據,以可視化的方式進行呈現.各個領導以及負責人可以根據該系統提供的可視化數據進行快速分析決策,迅速調整運營戰略,促進企業健康發展.

需求描述

進入該系統,根據當前企業微信登陸用戶,進行查詢該用戶負責的部門信息以及該部門所有業績數據,及其它報表數據.以圖形圖表,折線圖,數據列表等形式進行呈現(如下圖).

springboot接入微信支付,在這里插入圖片描述
在這里插入圖片描述

準備

1.建立SpringBoot項目
2.準備企業微信: 企業ID(獲取Code調用的API中參數名稱叫:appid, 獲取access_token
調用的API中參數名稱叫:corpid),應用授權作用域(參數名稱:scope)。

一. 建立SpringBoot項目

本項目使用 IntelliJ IDEA 工具開發,通過Apollo提供遠程的配置服務,以達到集群環境統一使用一套動態配置的目的。
環境: JDK 1.8, Maven 3.5.2, Oracle, Redis
工具: IntelliJ IDEA

開始

1.創建新的Maven工程(創建父工程)

雙擊idea圖標,打開軟件,點擊 Create New Project 創建新的工程.
在這里插入圖片描述

2.選擇左側Maven項目,直接下一步,我沒有使用提供的選項,不是用也無妨

Create from archetype 的說明請點擊下方直達(鏈接可能隨時會失效)
鏈接: IntelliJ IDEA創建Maven項目archetype選什么.
在這里插入圖片描述

3.填寫項目名稱

vue登錄權限控制,我這項目名字瞎起的,兄弟們盡量按照規范來.
轉載: Maven項目命名規范(GroupID、Artifactid)
在這里插入圖片描述

4.填寫工程名字

Project location 仔細看一下項目存放的目錄和層級,別放錯了地方.
在這里插入圖片描述

5.如果目錄不存在,點擊OK自動創建了

在這里插入圖片描述

6.父工程創建完成請欣賞

在這里插入圖片描述

7.刪除父工程不需要的目錄結構

在這里插入圖片描述

8.創建一個Maven子模塊

maven官網、本項目實際開發,根據需求我創建了三個子模塊,博客為了演示,創建一個說明問題就好了.
軟件左上角: File >> New >> Module
在這里插入圖片描述

9.這時創建的就是子模塊

還是選中左側Maven下一步即可
在這里插入圖片描述

10.這里建立的是子模塊,要選擇父工程信息

在這里插入圖片描述
在這里插入圖片描述
選擇好父工程之后 GroupId 和 Version 后,會自動帶入父工程的信息
只要填寫好子模塊項目名稱即可
在這里插入圖片描述

11.看好目錄層級,應該在父工程目錄下面,沒問題點擊Finish完成

在這里插入圖片描述

12.子模塊創建完成了,請欣賞

在這里插入圖片描述

13.我們先配置一下父工程的pom

Spring boot?轉載: springboot中pom文件詳解
轉載: springboot一些重要 POM 文件的具體說明

springboot中pom文件詳解
<?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"><!-- pom模型版本 --><modelVersion>4.0.0</modelVersion><!-- 項目信息 --><groupId>demo</groupId><!-- 項目唯一標識 --><artifactId>springboot</artifactId><!-- 項目名 --><version>0.0.1-SNAPSHOT</version><!-- 版本 --><packaging>jar</packaging><!-- 打包方式 (pom,war,jar) --><name>springboot</name><!-- 項目的名稱, Maven 產生的文檔用 --><description>Demo project for Spring Boot</description><!-- 項目的描述, Maven 產生的文檔用 --><!-- 父級項目 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.7.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><!-- 屬性設置 --><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- 編譯字符編碼為utf-8 --><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!-- 輸出字符編碼為UTF-8  --><java.version>1.8</java.version><!-- jdK版本 --></properties><!-- 依賴關系 --><dependencies><!-- 測試 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- springmvc --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- jpa(持久層) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><!-- mysql(數據庫) --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency></dependencies><!-- 編譯 --><build><!-- 插件 --><plugins><!-- maven插件 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
springboot一些重要 POM 文件的具體說明
名稱說明
spring-boot-starter核心 POM,包含自動配置支持、日志庫和對 YAML 配置文件的支持。
spring-boot-starter-amqp通過 spring-rabbit 支持 AMQP。
spring-boot-starter-aop包含 spring-aop 和 AspectJ 來支持面向切面編程(AOP)。
spring-boot-starter-batch支持 Spring Batch,包含 HSQLDB。
spring-boot-starter-data-jpa包含 spring-data-jpa、spring-orm 和 Hibernate 來支持 JPA。
spring-boot-starter-data-mongodb包含 spring-data-mongodb 來支持 MongoDB。
spring-boot-starter-data-rest通過 spring-data-rest-webmvc 支持以 REST 方式暴露 Spring Data 倉庫。
spring-boot-starter-jdbc支持使用 JDBC 訪問數據庫。
spring-boot-starter-security包含 spring-security。
spring-boot-starter-test包含常用的測試所需的依賴,如 JUnit、Hamcrest、Mockito 和 spring-test 等。
spring-boot-starter-velocity支持使用 Velocity 作為模板引擎。
spring-boot-starter-web支持 Web 應用開發,包含 Tomcat 和 spring-mvc。
spring-boot-starter-websocket支持使用 Tomcat 開發 WebSocket 應用。
spring-boot-starter-ws支持 Spring Web Services。
spring-boot-starter-actuator添加適用于生產環境的功能,如性能指標和監測等功能。
spring-boot-starter-remote-shell添加遠程 SSH 支持。
spring-boot-starter-jetty使用 Jetty 而不是默認的 Tomcat 作為應用服務器。
spring-boot-starter-log4j添加 Log4j 的支持。
spring-boot-starter-logging使用 Spring Boot 默認的日志框架 Logback。
spring-boot-starter-tomcat使用 Spring Boot 默認的 Tomcat 作為應用服務器。

本項目添加的jar可能有多余的,多了無妨(僅供參考,各位大哥們如果用的話,多的可刪掉)
重要配置文件就簡單說明一下,其他每個jar的作用就不做多解釋了,根據每個項目需求不一.
在這里插入圖片描述

添加pom配置-父級依賴

在這里插入圖片描述

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.2.RELEASE</version><relativePath/></parent>
添加pom配置-jar版本號聲明配置

properties標簽的作用:在標簽內可以把版本號作為變量進行聲明,后面dependency中用到版本號時可以用${變量名}的形式代替,這樣做的好處是:當版本號發生改變時,只有更新properties標簽中的變量就行了,不用更新所有依賴的版本號
在這里插入圖片描述

添加pom配置-進入jar坐標

在這里插入圖片描述

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-rest</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>com.oracle</groupId><artifactId>ojdbc6</artifactId><version>${oracle.version}</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.version}</version><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>fluent-hc</artifactId><version>${fluent-hc.version}</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId></dependency><dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-client</artifactId><version>${apollo.version}</version></dependency><dependency><groupId>com.codingapi.txlcn</groupId><artifactId>txlcn-tc</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>com.codingapi.txlcn</groupId><artifactId>txlcn-txmsg-netty</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-undertow</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-sleuth-zipkin</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>${commons-lang3.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency><dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>${disruptor.version}</version></dependency><dependency><groupId>com.szkingdom.kwis</groupId><artifactId>security</artifactId><version>${security.version}</version></dependency><dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>fluent-hc</artifactId><version>4.5.5</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpmime</artifactId></dependency></dependencies>
添加pom配置-dependencyManagement

vue 登錄頁面。Maven中的dependencyManagement元素提供了一種管理依賴版本號的方式。在dependencyManagement元素中聲明所依賴的jar包的版本號等信息,那么所有子項目再次引入此依賴jar包時則無需顯式的列出版本號。Maven會沿著父子層級向上尋找擁有dependencyManagement 元素的項目,然后使用它指定的版本號。
轉載: dependencyManagement使用簡介
在這里插入圖片描述
以上,父工程pom配置完成

14.繼續搞子模塊,此時此模塊目錄結構缺少層級,可以手動補全

剛創建好是這樣的:
在這里插入圖片描述
在java目錄上方右鍵: New >> Package
沒有發現 Package 選項 ???
在這里插入圖片描述
先這樣操作一下:
在java目錄上方右鍵: Mark Directory as >> Sources Root
給這個目錄改為資源文件,在按照上一步操作就可以了.
在這里插入圖片描述
此時就有了,你會發現該文件夾還變成了綠色
在這里插入圖片描述
包名盡量規范
在這里插入圖片描述

補齊后的目錄:
綠色框框是我們補全的包路徑和目錄
紅色是又新建的標準目錄結構,可能某些命名名字不太一樣,無妨(就是那三層)
灰色箭頭指向的是創建的一個啟動類,Spring Boot是main方法啟動
轉載: Java—三層架構 MVC SpringBoot基本框架
在這里插入圖片描述
controller 包名我改了一下,現在叫web,都一樣,這兩個叫哪個都無妨,看心情
在這里插入圖片描述
在resources目錄添加配置文件(本實際項目使用的Apollo配置文件,需要在文件中配置個apollo地址),如下
在這里插入圖片描述

15.我們在web層創建一個類,隨便寫個接口測試一下,測試成功那么項目就算搭建成功~

啟動main方法:

寫了三個接口:
1.簡單的調用就行
2.Rest風格傳參調用
3.普通方式參數拼接調用
在這里插入圖片描述
測試結果:
1.簡單調用結果

springboot https?2.Rest風格傳參調用結果

3.普通方式參數拼接調用結果

//TODO
工程有點問題,啟動報錯,必須添加eureka地址才不報錯,有時間在完善,先略過…

二. 企業微信授權

鏈接: 企業微信API

企業微信授權三個步驟:
準備:

企業ID:
每個企業都擁有唯一的corpid,獲取此信息可在管理后臺“我的企業”-“企業信息”下查看“企業ID”(需要有管理員權限)
獲取access_token調用的API中參數名稱叫:corpid
獲取code調用的API中參數名稱叫:appid
在這里插入圖片描述
應用授權作用域(參數名稱:scope)
secret是企業應用里面用于保障數據安全的“鑰匙”,每一個應用都有一個獨立的訪問密鑰,為了保證數據的安全,secret務必不能泄漏。
自建應用secret,在管理后臺->“應用與小程序”->“應用”->“自建”,點進某個應用即可看到。
在這里插入圖片描述

1.獲取code參數

小程序springboot。請求方式:GET(HTTPS)
請求地址:https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect

2.獲取獲取access_token

請求方式: GET(HTTPS)
請求地址: https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
在這里插入圖片描述

3.通過code和access_token獲取用戶信息
代碼展示:

//TODO
抽時間繼續寫

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/184266.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息