0.申请一个微信公众号,记住他的appId,secret,token,accesstoken

1.创建一个springboot项目。在pom文件里面导入微信开发工具类

  1. <dependency>
    <groupId>com.github.binarywang</groupId>
    <artifactId>weixin-java-mp</artifactId>
    <version>3.1.0</version>
    </dependency>
    2.编写controller
  1. package com.weixin.demo.demo.web.back.controller;
  2.  
  3. import me.chanjar.weixin.mp.api.WxMpService;
  4. import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
  5. import me.chanjar.weixin.mp.bean.message.WxMpXmlOutImageMessage;
  6. import me.chanjar.weixin.mp.bean.message.WxMpXmlOutTextMessage;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.PostMapping;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RequestMethod;
  12. import org.springframework.web.bind.annotation.ResponseBody;
  13.  
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16. import java.io.IOException;
  17. import java.io.PrintWriter;
  18.  
  19. @Controller
  20. public class weixinController {
  21.  
  22. @Autowired
  23. private WxMpService wxMpService;
  24.  
  25. /**
  26. * 1.接入公众号:公众号服务器配置的接口地址为这个
  27. * @param signature
  28. * @param timestamp
  29. * @param nonce
  30. * @param echostr
  31. * @return
  32. */
  33. @RequestMapping(value= "/wechart/index",method = RequestMethod.GET)
  34. @ResponseBody
  35. public String checkSignature(String signature, String timestamp, String nonce, String echostr)
  36. {
  37. System.out.println("————————微信接入——————————");
  38. if (wxMpService.checkSignature(timestamp,nonce,signature))
  39. {
  40. return echostr;
  41. }else
  42. {
  43. return null;
  44. }
  45. }
  46.  
  47. /**
  48. * 消息的接收和回复
  49. */
  50. @PostMapping("/wechart/index")
  51. @ResponseBody
  52. public void sendWxMessage(HttpServletRequest request, HttpServletResponse response) throws IOException {
  53. System.out.println("————————微信消息接收和发送——————————");
  54. //获取消息流
  55. WxMpXmlMessage message=WxMpXmlMessage.fromXml(request.getInputStream());
  56. //消息的处理:文本 text
  57. String msgType = message.getMsgType();//消息的类型
  58. String fromUser = message.getFromUser();//发送消息用户的账号
  59. String toUser = message.getToUser();//开发者账号
  60. String content = message.getContent();//文本内容
  61. String msg = message.getMsg();
  62.  
  63. //回复文本消息
  64. if("text".equals(msgType))
  65. {
  66. //创建文本消息内容
  67. WxMpXmlOutTextMessage text=WxMpXmlOutTextMessage.TEXT().
  68. toUser(message.getFromUser()).
  69. fromUser(message.getToUser()).
  70. content("你好,很高心认识你").build();
  71. //转化为xml格式
  72. String xml=text.toXml();
  73. System.out.println(xml);
  74. //返回消息
  75. response.setCharacterEncoding("UTF-8");
  76. PrintWriter out=response.getWriter();
  77. out.print(xml);
  78. out.close();
  79. }
  80. }
  81.  
  82. /**
  83. * 首页访问
  84. * @return
  85. */
  86. @RequestMapping(value= "/",method = RequestMethod.GET)
  87. @ResponseBody
  88. public String index()
  89. {
  90. return "hello";
  91. }
  92.  
  93. }

weixinController

3.编写初始化文件:从application.yml配置文件中获取 appId,secret,token,accesstoken,这几个值来自公众号

  1. package com.weixin.demo.demo.web.common.config;
  2.  
  3. import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
  4. import me.chanjar.weixin.mp.api.WxMpService;
  5. import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
  6. import org.springframework.boot.context.properties.ConfigurationProperties;
  7. import org.springframework.context.annotation.Bean;
  8. import org.springframework.context.annotation.Configuration;
  9.  
  10. @ConfigurationProperties("siping")
  11. @Configuration
  12. public class WechatConfig {
  13.  
  14. //从配置文件中获取字段,需要设置get,set方法
  15. private String appId;
  16. private String secret;
  17. private String token;
  18. private String accesstoken;
  19.  
  20. /**
  21. * 初始化微信service
  22. *
  23. * @return
  24. */
  25. @Bean
  26. public WxMpService getWxMpService() {
  27. WxMpService wxMpService = new WxMpServiceImpl();
  28. WxMpInMemoryConfigStorage wxMpInMemoryConfigStorage = new WxMpInMemoryConfigStorage();
  29. wxMpInMemoryConfigStorage.setAppId(appId);
  30. wxMpInMemoryConfigStorage.setSecret(secret);
  31. wxMpInMemoryConfigStorage.setToken(token);
  32. wxMpInMemoryConfigStorage.setAccessToken(accesstoken);
  33. wxMpService.setWxMpConfigStorage(wxMpInMemoryConfigStorage);
  34. return wxMpService;
  35. }
  36.  
  37. public String getAppId() {
  38. return appId;
  39. }
  40.  
  41. public void setAppId(String appId) {
  42. this.appId = appId;
  43. }
  44.  
  45. public String getSecret() {
  46. return secret;
  47. }
  48.  
  49. public void setSecret(String secret) {
  50. this.secret = secret;
  51. }
  52.  
  53. public String getToken() {
  54. return token;
  55. }
  56.  
  57. public void setToken(String token) {
  58. this.token = token;
  59. }
  60.  
  61. public String getAccesstoken() {
  62. return accesstoken;
  63. }
  64.  
  65. public void setAccesstoken(String accesstoken) {
  66. this.accesstoken = accesstoken;
  67. }
  68. }

WechatConfig

3.注意:

在回复消息的时候需要注意:toUser,和fromUser的主体是谁,一般时候微信端传递过来的值反着的。

  1. 4.通过natapp配置内网穿透映射127.0.0.18080端口,让微信端能够访问到:
    登录注册natapp,下载natapp的客户端,运行,在命令行输入:natapp -authtoken=自己登录后分配的natapptoken

5.和公众号平台对接自己的服务器

6.结果

  1.  

微信开发基于springboot的更多相关文章

  1. 接口开发-基于SpringBoot创建基础框架

    说到接口开发,能想到的开发语言有很多种,像什么Java啊..NET啊.PHP啊.NodeJS啊,太多可以用.为什么选择Java,究其原因,最后只有一个解释,那就是“学Java的人多,人员招聘范围大,有 ...

  2. 基于spring-boot的社区社交微信小程序,适合做脚手架、二次开发

    基于spring-boot的社区社交微信小程序,适合做脚手架.二次开发 代码地址如下:http://www.demodashi.com/demo/13867.html 1 概述 笔者做的一个后端基于s ...

  3. 基于SpringBoot的开源微信开发平台,Jeewx-Boot 1.0 版本发布

    项目介绍 JeewxBoot 是一款基于SpringBoot的免费微信开发平台.支持微信公众号.小程序官网.微信抽奖活动. Jeewx-Boot实现了微信公众号管理.小程序CMS.微信抽奖活动等基础功 ...

  4. 基于SpringBoot从零构建博客网站 - 技术选型和整合开发环境

    技术选型和整合开发环境 1.技术选型 博客网站是基于SpringBoot整合其它模块而开发的,那么每个模块选择的技术如下: SpringBoot版本选择目前较新的2.1.1.RELEASE版本 持久化 ...

  5. Jeewx-Boot 1.1 版本发布,基于SpringBoot的开源微信管家系统

    项目介绍 JeewxBoot是一款基于SpringBoot的开源微信管家系统,采用SpringBoot2.1.3 + Mybatis + Velocity 框架技术.支持微信公众号.微信第三方平台(扫 ...

  6. JeecgBoot 2.1.1 代码生成器AI版本发布,基于SpringBoot+AntDesign的JAVA快速开发平台

    此版本重点升级了 Online 代码生成器,支持更多的控件生成,所见即所得,极大的提高开发效率:同时做了数据库兼容专项工作,让 Online 开发兼容更多数据库:Mysql.SqlServer.Ora ...

  7. 在线Online表单来了!JeecgBoot 2.1 版本发布——基于SpringBoot+AntDesign的快速开发平台

    项目介绍 Jeecg-Boot 是一款基于SpringBoot+代码生成器的快速开发平台! 采用前后端分离架构:SpringBoot,Ant-Design-Vue,Mybatis,Shiro,JWT. ...

  8. 基于SpringBoot免费开源的微信管家平台,Jeewx-Boot 1.0.3 版本发布

    项目介绍 JeewxBoot 是一款基于SpringBoot的免费微信开发平台.支持微信公众号.小程序官网.微信抽奖活动.Jeewx-Boot实现了微信公众号管理.小程序CMS.微信抽奖活动等基础功能 ...

  9. 基于SpringBoot+AntDesign的快速开发平台,JeecgBoot 2.0.2 版本发布

    Jeecg-Boot 是一款基于SpringBoot+代码生成器的快速开发平台! 采用前后端分离架构:SpringBoot,Ant-Design-Vue,Mybatis,Shiro,JWT. 强大的代 ...

随机推荐

  1. mongoDB3.0版本使用express读取数据

    使用express连接数据库操作 var express = require('express'); var app = express(); var MongoClient = require('m ...

  2. JQuery EasyUI 之 messager基本使用

    ♦ 基本语法:$.messager.alert ( title , msg , icon , fn ): 其中,icon有四种设置:"error"."info" ...

  3. AWK如何打印从某一列到最后一列的内容

    awk -F " "  '{for (i=4;i<=NF;i++)printf("%s ", $i);print ""}' file

  4. mysql的表映射

    参考博客:https://blog.csdn.net/shushugood/article/details/79925150 1.服务器上的操作 在服务器上mysql创建一个实例,名为test_db, ...

  5. Vofuria ARCamera相机问题

    想要发射 射线 Camera.allCameras[0] 该语句来选择相机:Camera.main 此语句只能找到Tag为MainCamera的相机:

  6. Token令牌管理权限

    什么是token HTTP是一种无状态的协议,也就是HTTP没法保存客户端的信息,没办法区分每次请求的不同. Token是服务器生成的一串字符,作为客户端请求的令牌.当第一次登陆后,服务器会分发Ton ...

  7. vue源码分析之new Vue过程

    实例化构造函数 从这里可以看出new Vue实际上是使vue构造函数实例化,然后调用_init方法 _init方法,该方法在 src/core/instance/init.js 中定义 Vue.pro ...

  8. linux 修改history带有时间

    今天在网上学到了给linux的history添加时间.方法如下: 首先已知HISTTIMEFORMAT可以给history设置时间:临时修改直接赋值:HISTTIMEFORMAT="%F % ...

  9. 11 个超棒的 jQuery 分步指引插件

    当一个网站或者一个Web应用推出新功能时,为了让用户了解你的站点(或应用)如何操作,往往都会在站点(应用)中添加一个分步指引的效果.然而这样的效果,对于不懂原生JS的同学来说,是件很头痛的事情. 下面 ...

  10. oracle导入.dmp文件

    在日常开发中,经常需要往一个数据库里导入.dmp文件,下面简单介绍下如何通过命令导入 1.创建一个awsbpm用户create user 用户名 identified by 密码; 如:create ...