使用springboot进行微信公众号开发的准备!

目录

1、公众号相关网站

 2、服务号、订阅号的区别

3、找到微信公众帐号测试号

4、准备域名

5、appID、appsecret、URL、Token、access_token介绍

6、实现公众号与springboot相连接


1、公众号相关网站

公众号登录网站:  微信公众平台  ,   手机扫描二维码即可显示公众号登录还是小程序登录了。

官方文档:  微信公众平台开发概述 | 微信开放文档

 2、服务号、订阅号的区别

服务号: 给企业和组织提供强大的业务服务与用户管理能力,帮助企业快速实现全新的公众号服务平台。 个人不能申请

订阅号: 为媒体和个人提供一种新的信息传播方式,构建与读者之间更好的沟通与管理模式。 个人可以申请

认证的服务号和订阅号功能更加强大,但手续相对可能也比较麻烦。

3、找到微信公众帐号测试号

扫码登录即可 

登录成功,进入此页面

4、准备域名

微信公众号开发需要使用域名,域名映射本机ip地址推荐使用ngrok, 推荐的理由之一:  免费、操作方便。

ngrok下载网址:  Sunny-Ngrok内网转发

ngrok后端登录网址: Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器

解压之后进入此文件夹,找到对应的程序。

 开通ngrok账号

只有online状态才是连接成功的,其它情况代表连接不成功 

5、appID、appsecret、URL、Token、access_token介绍

appID、appsecret是系统自动生成的,作用:  获取access_token时要用

URL就是你的域名+端口+项目路径, token随意书写就行了。 现在点击提交是没有意义的,需要后台程序验证消息是否来自微信服务器,并返回request.getParameter("echostr")的值才能提交成功,否则会报配置失败等错误信息;

access_token是后期一些高级功能需要获取的一个凭证,比如说 自定义菜单类、发送模板消息、素材管理等等,都需要使用到access_token

6、实现公众号与springboot相连接

点击提交,微信服务器将发送GET请求到填写的服务器地址URL上,并携带四个参数,    输出打印参数成功,代表微信服务器初步连通填写的服务器地址。

对请求开始检验,URL和Token才能填写成功

检验步骤:

开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

1)将token、timestamp、nonce三个参数进行字典序排序

2)将三个参数字符串拼接成一个字符串进行sha1加密

3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

Utils.java 工具类中进行字典序列排序以及加密、检验操作

public class Utils {


    public static final String TOKEN="aabbccdd";    //TOKEN就是自己填写的

    /*
   * 验证签名
   * */
    public static boolean check(String timestamp, String nonce, String signature) {

        //1、将token、timestamp、nonce进行字典排序
        String[] strs = new String[]{TOKEN, timestamp, nonce};
        Arrays.sort(strs);

        //2、将三个参数字符串拼接成一个字符串进行sha1加密
        String str = strs[0] + strs[1] + strs[2];
        String mysignature = sha1(str);

        //返回对比结果
        return mysignature.equalsIgnoreCase(signature);
    }

    /*
     * 加密方法
     * */
    private static String sha1(String src) {

        try {
            //获取一个加密对象
            MessageDigest md = MessageDigest.getInstance("sha1");
            //加密
            byte[] digest = md.digest(src.getBytes());
            char[] chars = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
            StringBuffer sb = new StringBuffer();
            //处理结果集
            for (byte b : digest) {
                sb.append(chars[(b >> 4) & 15]);
                sb.append(chars[b & 15]);
            }
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }
}

TestweixinController.java 

@RestController
public class TestweixinController {

    @RequestMapping(value="/testWeixin",method = {RequestMethod.POST,RequestMethod.GET})
    public void testWeixin(HttpServletRequest request, HttpServletResponse response) throws IOException {

        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        PrintWriter out = response.getWriter();

        String signature = request.getParameter("signature");
        String timestamp = request.getParameter("timestamp");
        String nonce = request.getParameter("nonce");
        String echostr = request.getParameter("echostr");

        if(Utils.check(timestamp,nonce,signature)){
            //校验正确并返回echostr,才能正式成为一名公众号开发者,即填写的URL和TOKEN才能生效
            out.print(echostr);
        }else{
            //校验失败
            out.print("---请到公众号执行相应操作---");
        }
        out.flush();
        out.close();
    }
}

目标效果

完成上述所有操作说明你对公众号开发有了初步了解!!  使用springboot进行公众号开发的详细操作请参考此博客: CSDN

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是一种用于开发 Java 应用程序的框架,它简化了传统 Java 开发的繁琐过程,使开发人员可以更快速地构建高效的应用程序。UniApp 是一个跨平台的开发框架,它可以同时开发 Android、iOS 和 Web 应用程序,极大地提高了开发效率和项目的可维护性。 微信公众号开发是指基于微信平台的应用程序开发,通过微信公众号,我们可以实现与用户的互动交流、推送消息、提供各种服务等。 在使用 Spring Boot 和 UniApp 进行微信公众号开发时,可以采用前后端分离的开发模式。前端使用 UniApp 进行界面设计和用户交互的开发,后端使用 Spring Boot 进行业务逻辑的处理和数据的存储。 首先,我们需要在微信公众平台注册一个开发者账号,获取到相应的公众号信息和接口权限。 接下来,前端开发人员可以使用 UniApp 进行公众号的界面设计和交互逻辑的编写。UniApp 提供了丰富的组件和模板,可以方便地实现各种界面效果,并且可以使用 Vue.js 进行数据的绑定与处理。 后端开发人员使用 Spring Boot 进行接口的开发和业务逻辑的处理。可以使用 Spring Boot 提供的丰富的功能和插件来简化开发,比如使用 Spring Data JPA 来操作数据库,使用 Spring Security 来实现用户认证与权限控制等。 最后,前后端通过接口进行数据的传输和交互,前端将用户的操作发送到后端进行处理,并将后端返回的数据展示给用户。 通过采用 Spring Boot 和 UniApp 进行微信公众号开发,可以充分发挥两者的优势,快速构建高效的应用程序,实现与用户的互动和服务。同时,由于使用的是跨平台的开发框架,可以方便地同时开发多个平台的应用程序,提高开发效率和项目的可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值