首页 > 其他分享 >一文教你轻松开发微信公众号,实现本地调试

一文教你轻松开发微信公众号,实现本地调试

时间:2025-01-23 16:56:43浏览次数:3  
标签:隧道 String 微信 点击 文教 域名 cpolar 调试

文章目录

转载自cpolar内网穿透的文章:微信公众号开发:对接本地开发环境【内网穿透】

前言

在微信公众号开发中,微信要求开发者需要拥有自己的服务器资源来响应微信发送的token验证,这个服务器只能通过域名访问,不能使用ip地址来进行访问,如果购买服务器,再购买域名,将是一笔比较大的开销,如果能将本地服务暴露出去,再使用域名去访问,不仅能简化配置,还能减少开销,达到快速开发的效果。

幸运的是,Cpolar帮您搞定这一点。 启动Cpolar并将隧道的URL粘贴到微信公众号对接服务器的URL字段中,完成!

1. 配置本地服务器

创建本地服务,这里以java服务为例,环境配置:

  • JDK1.8
  • maven
  • springboot
  • tomcat

根据微信开发者文档的接入指南中要求,对微信的发送的get请求参数进行加密对比

202301161502

在springboot服务controller编写一个微信验证的接口,根据要求获取微信传入的参数进行处理

/**
 * 微信服务调用接口
 */
@Controller
@RequestMapping("/wechat")
public class WeChatTest {

    private static String wxToken="flzabc123";

    @GetMapping("")
    public void weChatTestV(HttpServletRequest request, HttpServletResponse response) {

        // 1、验证消息的确来自微信服务器
        String signature = request.getParameter("signature");
        String timestamp = request.getParameter("timestamp");
        String nonce = request.getParameter("nonce");
        String echostr = request.getParameter("echostr");

        //将微信echostr返回给微信服务器
        try(OutputStream os = response.getOutputStream()) {
            String sha1 = getSHA1(wxToken, timestamp, nonce, "");

            //和signature进行对比
            if (sha1.equals(signature)){
            // 返回echostr给微信
                os.write(URLEncoder.encode(echostr, "UTF-8").getBytes());
                os.flush();
                
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    /**
     * 用SHA1算法生成安全签名
     *
     * @param token     票据
     * @param timestamp 时间戳
     * @param nonce     随机字符串
     * @param encrypt   密文
     * @return 安全签名
     * @throws Exception
     */
    public static String getSHA1(String token, String timestamp, String nonce, String encrypt) throws Exception {
        try {
            String[] array = new String[]{token, timestamp, nonce, encrypt};
            StringBuffer sb = new StringBuffer();
            // 字符串排序
            Arrays.sort(array);
            for (int i = 0; i < 4; i++) {
                sb.append(array[i]);
            }
            String str = sb.toString();
            // SHA1签名生成
            MessageDigest md = MessageDigest.getInstance("SHA-1");
            md.update(str.getBytes());
            byte[] digest = md.digest();
            StringBuffer hexstr = new StringBuffer();
            String shaHex = "";
            for (int i = 0; i < digest.length; i++) {
                shaHex = Integer.toHexString(digest[i] & 0xFF);
                if (shaHex.length() < 2) {
                    hexstr.append(0);
                }
                hexstr.append(shaHex);
            }
            return hexstr.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }



}

编写好接口后,接着启动服务,启动springboot,这里暴露的是8080端口

202301161502

2. 内网穿透

这里我们使用cpolar内网穿透,将本地服务映射到公网,无需公网ip,也不用设置路由器,操作非常简单。【cpolar.cn已备案】

2.1 下载安装cpolar内网穿透

cpolar官网:https://www.cpolar.com/

访问cpolar官网,注册一个账号,并下载安装cpolar客户端。详细可以参考文档教程进行下载安装.

20230116153634

2.2 创建隧道

cpolar安装成功后,我们在浏览器上访问本地9200端口,登录Cpolar的web ui界面:http://localhost:9200

点击左侧仪表盘的隧道管理——创建隧道,我们来创建一条隧道,将在本地8080端口下的web服务映射到公网:

  • 隧道名称:可自定义,注意不要与已有隧道名称重复
  • 协议:http协议
  • 本地地址:80
  • 域名类型:免费选择随机域名
  • 地区:选择China VIP

点击创建

202301161503

提示隧道创建成功后,页面自动跳转至隧道列表,可以看到刚刚创建成功的tunnel-1隧道,状态active,表示为正常在线,注意无需再次点击启动。

点击左侧仪表盘的状态——在线隧道列表,可以看到刚刚创建的隧道已经有生成了相应的公网地址,一个http协议,一个https协议(免去配置ssl证书的繁琐步骤),均可以访问到本地web服务,复制公网地址。

202301161504

3. 测试公网访问

打开微信公众平台公众号页面,点击下面的基本配置,在URL框中填写复制的公网地址,

202301161505

出现提交成功表示验证成功

202301161506

点击启用服务器配置,出现操作成功表示启用成功

202301161507

4. 固定域名

由于以上配置的公网地址使用的是随机地址,在24小时内会随机变化,为了使服务更稳定运行,建议必须配置固定域名地址。

注意需要将cpolar套餐升级至基础套餐或以上。【cpolar.cn已备案】

4.1 保留一个二级子域名

访问Cpolar官网www.cpolar.com,登录cpolar官网后台,点击左侧的预留,找到保留二级子域名:

  • 地区:选择China VIP
  • 二级域名:可自定义填写
  • 描述:即备注,可自定义填写

点击保留

202301161508

提示子域名保留成功,复制所保留的二级子域名

202301161509

4.2 配置二级子域名

访问http://127.0.0.1:9200/,登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到刚刚创建的http微信开发隧道,点击右侧的编辑

202301161510

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新

202301161511

更新完后,再次打开在线隧道列表,此时可以看到,隧道变成了固定的二级子域名,名称是我们在官网保留的wechat,然后复制该域名

202301161512

5. 使用固定二级子域名进行微信开发

打开微信公众平台——公众号页面,点击基本配置,修改URL的值,修改前需要点击停用服务器配置,替换后点击提交

202301161513

出现提交成功表示替换成功

202301161514

接着,点击启动服务器配置,出现操作成功表示成功,接下来就可以使用本地服务器进行微信开发啦

202301161515

标签:隧道,String,微信,点击,文教,域名,cpolar,调试
From: https://blog.csdn.net/qq_25749749/article/details/145326281

相关文章

  • 小柏实战学习Liunx(图文教程三十)
    本节课主题:linux安装宝塔面板7.9.4前言:一定要知道每一个命令是啥意思,并且要学会看报错信息,学会使用AI。 1.Centos安装命令(默认安装是7.8.0直接在线升级7.9.4):yuminstall-ywget&&wget-Oinstall.shhttp://io.bt.sy/install/install_6.0.sh&&shinstall.sh ......
  • 小柏实战学习Liunx(图文教程二十八)
    本节课主题:青龙Tools面板安装使用教程前言:一定要知道每一个命令是啥意思,并且要学会看报错信息,学会使用AI。1.两行代码,解决面板安装#创建QLTools目录并进入mkdirqltools&&cdqltools#Docker版本提供架构:amd64、arm64、arm-7dockerrun-itd--nameQLTools-v$P......
  • 小柏实战学习Liunx(图文教程二十九)
    本节课主题:linux安装 NolanPro前言:一定要知道每一个命令是啥意思,并且要学会看报错信息,学会使用AI。 0.进入nuolan群,找玛卡巴卡获取许可(@NolanNarkbot点击start后在群里使用命令菜单/narksq@NolanNarkbot获取许可)(在群里发送/narksq@NolanNarkbot获取到授权之后改名......
  • 小柏实战学习Liunx(图文教程二十八)
    本节课主题:青龙Tools面板安装使用教程前言:一定要知道每一个命令是啥意思,并且要学会看报错信息,学会使用AI。1.两行代码,解决面板安装#创建QLTools目录并进入mkdirqltools&&cdqltools#Docker版本提供架构:amd64、arm64、arm-7dockerrun-itd--nameQLTools-v$P......
  • springboot基于微信小程序的健康生活助手系统
    SpringBoot基于微信小程序的健康生活助手系统是一种结合了SpringBoot后端框架与微信小程序前端技术的健康管理工具。一、系统概述该系统旨在为用户提供一个方便、快捷的健康管理平台,通过记录和跟踪用户的健康数据,帮助他们更好地了解自己的身体状况,并及时调整生活习惯。......
  • JSP拼车系统1fxmu(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着城市化进程的加快和交通拥堵问题的日益严重,拼车作为一种共享出行的方式,逐渐成为缓解交通压力、降低出行成本的有效途径。拼......
  • JSP暖暖猫窝系统a856q--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着宠物经济的兴起,宠物猫已成为许多家庭的重要成员。然而,传统的猫窝已无法满足现代宠物猫的生活需求。因此,开发一款智能、舒适......
  • JSP农副及衍生产品交易系统3qxs1--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着互联网技术的发展,电子商务已成为推动各行各业数字化转型的重要力量。在农副产品领域,传统的交易模式存在信息不对称、交易效......
  • JSP农业种植管理系统5kb33--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着科技的飞速发展,农业领域正逐步向智能化、信息化转型。农业种植管理作为农业生产的关键环节,其效率与质量直接影响农作物的产......
  • 基于协同过滤算法的微信小程序文章推荐系统的设计与实现【高分毕设】
    目录资源链接论文链接后端系统链接微信端系统链接答辩PPT1.绪论1.1课题背景1.2研究目的和意义1.3文献回顾2.关键技术介绍2.1前端技术2.2协同过滤3.需求分析3.1可行性分析3.2功能需求分析3.2.1用户管理3.2.2文集管理3.2.3图书管理3.2.4文集和图书分类3.2.5......