搭建个人微信公众号
1. 注册与配置微信公众号
1.1 注册微信公众平台账号
- 访问微信公众平台:首先,请访问微信公众平台官网(https://mp.weixin.qq.com/)。根据页面提示完成个人类型的公众号(订阅号)注册流程。
- 选择订阅号类型:请注意,对于个人用户而言,仅能注册“订阅号”,这限制了部分高级功能的使用。例如,订阅号每日只能发送一条群发消息,并且无法使用支付等高级接口。
- 实名认证:在注册过程中,你需要按照系统要求填写个人信息并进行身份验证。确保所有信息准确无误,以避免后续可能出现的问题或延误。
1.2 配置服务器
- 进入开发设置:登录微信公众平台后,在左侧菜单中找到“开发”->“基本配置”。在此处可以设置你的服务器地址(URL)、令牌(Token)及消息加解密密钥(EncodingAESKey)。
- 服务器配置说明:
- 服务器地址(URL):这是开发者用来接收微信消息和事件通知的接口URL。必须是一个公网可访问的HTTPS URL。
- Token:由开发者自行设定,用于生成签名,保证安全性。
- EncodingAESKey:用于消息体加密/解密的密钥。
- 接入验证过程:
当开发者提交这些信息后,微信服务器将向填写的服务器地址URL发送一个GET请求来验证有效性。该请求携带以下参数:
参数 |
描述 |
signature |
微信加密签名,结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 |
timestamp |
时间戳 |
nonce |
随机数 |
echostr |
随机字符串 |
- 开发者需要通过检验
signature
来确认此次GET请求是否来自微信服务器。若确认,请原样返回echostr
参数的内容,则接入生效;否则接入失败。具体加密/校验流程如下:
- 将
token
,timestamp
,nonce
三个参数按字典序排序; - 将这三个参数字符串拼接成一个字符串,然后进行SHA1加密;
- 开发者获得加密后的字符串并与
signature
对比,如果相同,则表明该请求来源于微信服务器。
2. 自动回复功能
2.1 工作流程概述
当用户向公众号发送消息时,微信服务器会将这些消息转发到你设置的服务器地址。你的服务器需要在5秒内处理完请求并返回响应(支持文本、图片、图文等多种格式)。如果无法及时响应,应返回success
或空串以告知微信服务器无需重试。这样可以防止因超时导致的重复请求问题。
2.2 开发指南
- 接收消息格式:微信服务器将以XML格式发送用户消息至你的服务器。以下是一个典型的文本消息示例:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>
- 解析并构建回复消息:基于收到的消息,你可以构建相应的回复。例如,回复文本消息的XML结构如下:
<xml>
<ToUserName><![CDATA[fromUser]]></ToUserName>
<FromUserName><![CDATA[toUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[你好]]></Content>
</xml>
注意调整ToUserName
和FromUserName
的值,使其分别对应原消息中的发送方和接收方。
此外,当你的服务器无法在规定时间内处理并回复用户的请求时,应该返回success
或者一个长度为0的空字符串(而不是XML结构体中content
字段的内容为空),以此告诉微信服务器不需要对此请求做任何处理,并停止重试。
正文到此结束
- 本文标签: 微信公众号
- 本文链接: https://lanzi.cyou/article/48
- 版权声明: 本文由咖啡豆原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权