搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
知新_RL
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
《Ubuntu20.04环境下的ROS学习笔记13》
2
(四)部署k8s dashboard web端管理界面_k8s单机部署 web管理页面
3
学习笔记:Linux入门到进阶_linux系统 从入门到进阶-2023全新版
4
深度学习笔记 —— 批量归一化_x.mean
5
总结:网络访问流程_从北京1台笔记本,登录访问github网站,描述一下整个过程的各层级涉及到的网络
6
简单图像处理_同态滤波和维纳滤波
7
服务器信息安全协议,安全设备、服务器及服务器信息安全实现方法
8
麒麟V10 kylin v10服务器版yum软件源官方源亲测可用_kylin v10 yum源
9
《UNIX环境高级编程 3rd》笔记(1 / 21):UNIX基础知识_program 3rd是有效程序名
10
基于SpringBoot+Vue的汽车销售网站(源码+文档+包运行)_springbootvue项目源码网站
当前位置:
article
> 正文
微信公众平台开发简介
作者:知新_RL | 2024-03-21 11:06:41
赞
踩
微信公众平台开发简介
一、什么是微信公众账号
如下面图所示,展示了一个微信公众账号。
二、开发原理
我们所要做的主要工作为:解码 -> 实现自己的业务 -> 编码后返回结果。很简单的一个流程。
三、账号申请与配置
账号申请
申请不多说了。地址:https://mp.weixin.qq.com
配置
主要配置三个信息:URL、Token、EncodingAESKey。
URL :微信服务器收到消息将会推送到此URL
Token:任意填写,用于验证消息是否来自微信服务器
EncodingAESKey:用作消息体加解密密钥
四、开发一个简单的程序
get:微信服务器会先get消息进行确认。
加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识
该请求来源于微信
4.成功原样返回参数中的echostr
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
// 时间
String nonce = request.getParameter("nonce");
String echostr = request.getParameter("echostr");
PrintWriter out = response.getWriter();
// 跳过校验,直接返回成功
if (true) {
out.print(echostr);
}
out.close();
out = null;
}
post:get确认成功后,post推送用户消息。
根据用户消息处理业务并返回回复消息
/**
* 处理微信服务器发来的消息
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String respMessage = RequestManager.processRequest(request);
// 响应消息
PrintWriter out = response.getWriter();
out.print(respMessage);
out.close();
}
public static String processRequest(HttpServletRequest request) {
String respMessage = "出错鸟!";
try {
Map<String, String> requestMap = MessageUtil.parseXml(request); //这里解析
String fromUserName = requestMap.get("FromUserName");
String toUserName = requestMap.get("ToUserName");
String msgType = requestMap.get("MsgType");
TextMessage txtMsg = new TextMessage("呵呵!");
txtMsg.setToUserName(fromUserName);
txtMsg.setFromUserName(toUserName);
txtMsg.setCreateTime(new Date().getTime());
txtMsg.setFuncFlag(0);
respMessage = txtMsg.toXml(); //这里转换格式返回给微信服务器 具体做法都很简单
} catch (Exception e) {
e.printStackTrace();
}
return respMessage;
}
开发者文档
更多详细信息可以参考官方文档:http://mp.weixin.qq.com/wiki/index.php
五:最后
主要是把简单流程给大家介绍了一下。希望大家有个基本了解。具体细节可以参考官方开发文档。
大家不要把开发想的太复杂。有好的点子才更重要。
希望多多支持。
有不足之处和不正确的地方希望斧正!
示例微信公众账号:mmcxzs
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/知新_RL/article/detail/280758
推荐阅读
article
计算机
体系
结构
——
并行程序
和
线程
_
并行程序
结构
...
计算机
体系
结构
——
并行程序
和
线程
线程
基本概念在每一个进程中,都保存了一个进程上下文用来保存该进程的所有运行信息。进程上下...
赞
踩
article
【vue组件】使用
element
-ui
table
实现嵌套
表格
点击
展开
时
获取数据
_
element
...
然后,因为选中子
table
的单选框后,把
展开
的子
table
收齐再
展开
时,单选框的选中样式会丢失,这时我想的办法是根据之前...
赞
踩
article
GPRS
模块
SIM900A
怎么用_
gprs
模块
怎么使用...
使用起来其实很简单。第一步是插一张2G电话卡,推荐用移动的,其他的也没试过。这个电话卡在某宝上面能直接买到,且详情里面说...
赞
踩
article
【2022最新版】
Android
面试
真题+解析
,
Android
面试
宝典+学习成长路线_
享学
课堂
and...
前言去年开始
,
互联网裁员动作越来越多
,
近期更是裁员消息频出。裁员的阴霾笼罩在每一个互联网人的头顶
,
每个人都揣揣不安
,
不清...
赞
踩
article
数学
建模(
熵
权法
python
代码 例子)...
熵
权法
是一种多属性决策方法,用于确定各个属性在决策中的重要程度。该方法的核心思想是通过计算属性的
熵
值,来评估属性的信息量...
赞
踩
article
Win11
安装
cuDNN
_
cuda
安装
后文件夹不见了...
本文介绍了在Windows环境中
安装
cuDNN
前需要先
安装
好对应版本的CUDA,并提供了
cuDNN
官网下载地址和相关资源...
赞
踩
article
STM32
的
简单介绍...
STM32
的
优势包括低功耗、高性能、高可靠性、易于开发等。
STM32
的
系列有很多,根据不同
的
内核、频率、存储器和外设可以...
赞
踩
article
vue
计算
属性
传递
自定义
参数_
:
span
-
method
...
vue
计算
属性
传递
自定义
参数以 element table组件
属性
"
span
-
method
"为例:具体实现_
:
span
-...
赞
踩
article
websocket
的
简单使用...
一 轮询 什么是轮询:设置每一段时间去访问一次服务器,然后服务器返回最新
的
数据。这样服务器
的
压力会非常
的
大,并且还会有延...
赞
踩
article
当前
端
传输
的
数据是
数组
类型时,
java
后
端
的
接收
方式
_
java
前
端
传
数组
后
端
怎么接...
当前
端
传输
的
数据是
数组
类型时,
java
后
端
的
接收
方式
_
java
前
端
传
数组
后
端
怎么接
java
前
端
传
数组
后
端
怎么接 ...
赞
踩
article
c
语言
中u%
的
用法
,
C
语言
中“#”和"
##
"
的
用法
...
1. 前言https://blog.
c
sdn.net/baidu_33850454/arti
c
le/details/79...
赞
踩
article
ROS
驱动乐视
相机
(
LeTMC
-520)并获取图像(
RGB
和
RGB
D)_
letmc520
...
ROS
驱动乐视
相机
(
LeTMC
-520)并获取图像(
RGB
和
RGB
D)_
letmc520
letmc520
...
赞
踩
article
uniapp
项目
自动
部署
uniapp
项目
命令方式启动_
uniapp
自动
化
部署
...
uniapp
项目
自动
部署
uniapp
项目
命令方式启动_
uniapp
自动
化
部署
uniapp
自动
化
部署
...
赞
踩
article
OpenHarmony
常用调试命令_
openharmony
param
shell
...
OpenHarmony
常用调试命令_
openharmony
param
shell
openharmony
param
...
赞
踩
article
GSM
sim900a
mini
模块
详解_
gsm
用
sim900a
模块
设计的电路解释...
目录使
用
要点:现有如下资料例程
模块
图片USB转串口连接900a与串口连接1 AT 指令简介常
用
AT指令读取短信:发送短信...
赞
踩
article
openCV
中
cap
.
read
()输出为
False
,
如何解决?_
cap
.
read
()返回
false
...
写在前边 本文的解决思路完全是按照小白的思想来进行的
,
也帮助小白能够以最快的方式来解决问题。正 文1.首先
,
测试你的代码...
赞
踩
article
NLP
学习笔记——
TextRank
算法
...
TextRank
算法
笔记_textrank
算法
textrank
算法
一、
算法
简介 TextRan...
赞
踩
article
OpenCV
4
基础篇|
OpenCV
图像
的
拼接
...
np.hstack和np.vstack用于
拼接
数组,而matplotlib用于显示
图像
。NumPy的
拼接
操作通常比mat...
赞
踩
article
微信
公众号
开发
之
HBuilder
和
微信
开发
者
者
工具
联合
开发
_hbuilderx和
微信
开发
者
工具
可以共...
本文讲解如何使用
HBuilder
和
微信
开发
者
者
工具
进行联合
开发
,方便
开发
者
在
开发
过程中进行调试轻巧 仅10余M的绿色发行...
赞
踩
article
嵌入式
STM32F10
-
定义
的基础知识_
define
uin
t
32
_
t
...
资料参考《STM32F1开发指南-库函数版本_v3.1》
uin
t
32
_
t
uin
t
= unsigned in
t
ui...
赞
踩
相关标签
c语言
java
开发语言
vue.js
ui
前端
单片机
stm32
嵌入式硬件
android
性能优化
面试
数学建模
python
算法
深度学习
tensorflow
vue
网络
json
javascript
c语言中u%的用法