原创

搭建个人微信公众号

 

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参数的内容,则接入生效;否则接入失败。具体加密/校验流程如下:
    1. token, timestamp, nonce三个参数按字典序排序;
    2. 将这三个参数字符串拼接成一个字符串,然后进行SHA1加密;
    3. 开发者获得加密后的字符串并与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>

注意调整ToUserNameFromUserName的值,使其分别对应原消息中的发送方和接收方。

此外,当你的服务器无法在规定时间内处理并回复用户的请求时,应该返回success或者一个长度为0的空字符串(而不是XML结构体中content字段的内容为空),以此告诉微信服务器不需要对此请求做任何处理,并停止重试。

正文到此结束