前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >从0开始一个微信公众号的自动回复

从0开始一个微信公众号的自动回复

作者头像
花花522
发布于 2023-03-07 08:04:21
发布于 2023-03-07 08:04:21
1.3K00
代码可运行
举报
文章被收录于专栏:花花爱咖啡花花爱咖啡
运行总次数:0
代码可运行

如果喜欢花花,不妨点个在看,分享给你同学

  1. 注册个人公众号,手机下载订阅号助手,简单注册就能用了
  2. 打开开发者模式,步骤如下

登录微信公众平台

链接如下:https://mp.weixin.qq.com/

滑动到底部,打开基本配置

修改公众号开发信息

修改服务器配置

消息加解密因为麻烦,这里直接使用明文,如用于商业,建议使用安全模式

3. 这里不能直接提交.因为微信在提交的时候会验证一遍,所以开始编写服务器代码.

4. 编写代码的第一个步骤就是先看看开发文档,那么我们来看看微信给的文档

我们从接入指南开始看,

https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html

第一步是填写服务器配置.我们上面已经完成了

第二布是验证请求的来源

参数加密有三个步骤

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

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

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

先看看微信官方给出的代码(php)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private function checkSignature()
{
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
  
    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    
    if( $tmpStr == $signature ){
        return true;
    }else{
        return false;
    }
}

最近刚好接触了springboot.用起来,java不香吗.写起来一样方便

spring: 配置地狱

springboot的优点就是自动装配.不需要写大量xml配置了.全部用start来启用配置.转对于spring.会慢慢更新,扯远了.我们直接看代码里面的注释


代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.huahua.controller;

import com.huahua.service.MessageServiceImpl;
import com.huahua.util.SHAUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;

@RestController
public class WxController {

    private final String token = "这里填自定义的token,需要对应微信配置的";
    @Autowired
    MessageServiceImpl messageService;// 这个是自动回复的service.本章节可以忽略




    @GetMapping("/wx")
    // 这个是本章节的重点.验证请求是否来自微信,防止别人手动请求获取结果
    public String token(@RequestParam("timestamp") String timestamp, @RequestParam("nonce") String nonce, @RequestParam("signature") String signature,@RequestParam("echostr") String echostr) {
        // 创建string数组接收,排序的方法很多
        String[] strings = {timestamp, nonce, token};
        // java自己提供的排序
        Arrays.sort(strings);
        String sha1 = SHAUtils.SHA1(strings[0] + strings[1] + strings[2]);
        return signature.equals(sha1) ? echostr : "验证失败";
    }

    /**
     * @return
     */
    @PostMapping("/wx")
    public String autoReply(HttpServletRequest request) throws Exception {
        System.out.println("autoReply执行");
        // 自动回复,本章节可以忽略
        return messageService.newMessageRequest(request);
    }



    @RequestMapping("/")
    public String index() {
    // 测试服务器连通,可以忽略
        return "爱花花";
    }

}

排序

传入数组就会自动把数组排序

springboot项目的打包

1. 首先放服务器上.因为自带tomcat,所以为了避免冲突.修改端口为8083(自定义,跟其他端口不冲突就行)

然后就ok了

2. 打jar包.双击就能自动打包

打包后在如下目录

3.上传服务器测试

通过宝塔或者其他花里胡哨的操作都行

4. 配置域名访问(使用反向代理)

5.运行jar包,这里使用ssh测试,你们想要后台运行可以使用nohup命令,具体你们参考百度把

6. 测试部署

访问配置好的域名,比如我的http://wx,jxwazx.cn

就会发现能访问,实测部分nginx访问时403.这是因为配置问题(原因未知),初步确认时因为没有index文件,代码没问题

7. 之前的微信界面提交

到这里已经配置完毕了

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 花花爱咖啡 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ThinkPHP6.0 + EasyWechat 4.x 公众号自动回复
https://easywechat.com/docs/4.x/official-account/index
很酷的站长
2023/01/04
1.1K0
ThinkPHP6.0 + EasyWechat 4.x 公众号自动回复
微信公众号服务器接口验证示例
今天用营业执照重新申请了一个微信公众号,然后在配置服务器的时候犯了难,因为打算使用EasyWeChat来开发,所以说得先配置服务器,这就让我犯了难,最后结合开发文档之后才研究出来了验证的套路,希望对你们有帮助。
用砖头敲代码
2022/06/17
2.7K0
微信公众号服务器接口验证示例
今天用营业执照重新申请了一个微信公众号,然后在配置服务器的时候犯了难,因为打算使用EasyWeChat来开发,所以说得先配置服务器,这就让我犯了难,最后结合开发文档之后才研究出来了验证的套路,希望对你们有帮助。
用砖头敲代码
2022/08/30
2.3K0
EasyWechat 3.x 小程序客服消息自动回复
EasyWechat 3.x : https://easywechat.com/docs/3.x/overview
很酷的站长
2023/01/08
1.3K0
EasyWechat 3.x 小程序客服消息自动回复
php-微信公众号与新浪sae接口代码
定义TOKEN,开发启用时用到; 定义一个wechatCallbackapiTest()的类; 验证消息确实来自微信服务器; 接受原始的xml数据包; 封装你想发送的xml数据返回给用户;
kdyonly
2023/03/03
4870
Laravel开发微信公众号【订阅号】后台的一些事情
对电脑这方面感兴趣的童鞋可能很清楚有一些“套路”,那就是回复某个关键词,获取某些素材、软件的下载地址。
无道
2019/11/13
1.2K0
Laravel开发微信公众号【订阅号】后台的一些事情
公众号服务器搭建与交互原理
自此已经成功创建 http://1.maizi.applinzi.com 这个应用。
一粒小麦
2019/07/18
2.2K0
公众号服务器搭建与交互原理
公众号:正确响应微信发送的Token验证「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129705.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/29
2.4K1
微信公众号平台开发测试怎么做_软件测试怎么测小程序
公众账号需要根据不同微信用户的不同消息做出不同的响应,所以每一个公众账号需要开发自己独有的系统,这套系统需要运行在公网环境下,但是我们通常普通开发人员没有这个条件,所以我选择了新浪云(天真的我以为是免费的,结果花了10个小洋)。
全栈程序员站长
2022/11/17
1.6K0
微信公众号平台开发测试怎么做_软件测试怎么测小程序
微信公众平台开发接口_小程序注册好了为什么搜索不到
在进行微信公众平台开发之前,需要先接入微信公众平台。具体的步骤在 公众平台开发者文档-接入指南 已有详细介绍,文档中也提供了验证服务器的 PHP 示例代码。
全栈程序员站长
2022/09/25
8060
php实现自动回复消息(网上教程有大坑,慎用)
废话不多说,直接上代码 define("TOKEN", config("wx_token")); $wechatObj = new Wxapi(); if (isset($_GET['echostr'])) { $wechatObj->valid(); }else{ $wechatObj->responseMsg(); } class Wxapi { /** * 微信公众号验证 */ public function valid() { $echoStr = $_GET["ec
黄啊码
2022/05/10
7960
微信公众号服务器验证Token的完整步骤
url填写:http://外网IP:端口号/wx 。外网IP请到腾讯云购买成功处查询, http的端口号固定使用80,不可填写其他。
PHP开发工程师
2021/04/21
9.8K0
微信公众号服务器验证Token的完整步骤
手把手做一个公众号GPT智能客服【二】实现微信公众号回复(订阅送源码!)
因为微信消息的转发,需要服务器在外网环境下进行访问,而我们正常编写代码需要在本地环境,所以我们需要通过Natapp进行内网穿透(成本为每月9元)
Maynor
2023/09/26
6590
手把手做一个公众号GPT智能客服【二】实现微信公众号回复(订阅送源码!)
laravel 微信公众号的Token无效解决的方案[通俗易懂]
ob_end_clean(); //必须清空缓冲区这个只有在laravel里面应该要。其他不知 h这个创建的链接要post和get都可以请求 laravel修改方法
全栈程序员站长
2022/09/30
6200
laravel 微信公众号的Token无效解决的方案[通俗易懂]
微信公众号开发者账号_小程序后端开发教程
微信公众帐号申请成功后,要想接收处理用户的请求,就必须要在“高级功能”里进行配置,点击“高级功能”,将看到如下界面:
全栈程序员站长
2022/11/11
1K0
微信公众号开发者账号_小程序后端开发教程
微信公众平台开发教程Java版(二) 接口配置
在公众平台网站的高级功能 – 开发模式页,点击“成为开发者”按钮,填写URL和Token,其中URL是开发者用来接收微信服务器数据的接口URL。(这就是我们开发的程序,并部署到公网上了)
全栈程序员站长
2022/09/07
8830
微信公众号开发(一)服务器及接口的配置
关于微信公众号中的订阅号和服务的区别这里不多加讨论,网上有很多资源可以搜到,这里直接进入正题,如果是个人开发者,这里建议使用测试号进行开发学习,测试号的权限要比个人订阅号要多的多,而本篇博客也是基于测试号进行开发的。
全栈程序员站长
2022/09/06
8.8K1
微信公众号开发(一)服务器及接口的配置
微信公众号消息接入(普通消息+模板消息)
  1、“硅谷课堂”公众号实现根据关键字搜索相关课程,如:输入“java”,可返回java相关的一个课程;
别团等shy哥发育
2023/02/25
3.5K0
微信公众号消息接入(普通消息+模板消息)
微信公众号开发者模式介绍及接入
编辑模式和开发模式是互斥的关系,也就是说,当我们使用开发模式时,编辑模式下的操作就会失效。反之,使用编辑模式时,开发模式下的操作就会失效,所以只能使用其中一个模式进行公众号的开发。
端碗吹水
2020/09/23
1.4K0
微信公众号开发者模式介绍及接入
微信公众号推送消息笔记
根据业务需要,开发一个微信公众号的相关开发,根据相关开发和整理总结了一下相关的流程和需要,进行一些整理和总结分享给大家,最近都在加班和忙碌,博客已经很久未更新了,打气精神,再接再厉,申请、认证公众号的一系列流程就不在这里赘述了,主要进行的是技术的分享,要达到的效果如下图:
stark张宇
2024/07/23
2890
推荐阅读
相关推荐
ThinkPHP6.0 + EasyWechat 4.x 公众号自动回复
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验