2023-02-26 08:56:19
使用公众号接口接收消息需要完成以下步骤:
申请接口权限:
在开发者首次提交验证申请时,微信服务器会发送GET请求到开发者填写的URL上,并附带四个参数:signature(签名)、timestamp(时间戳)、nonce(随机数)和echostr(随机字符串)。
开发者需要通过对签名的效验来判断消息的真实性。
验证签名:
开发者将token、timestamp、nonce三个参数进行字典序排序。
将三个参数字符串拼接成一个字符串并进行sha1加密。
开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。
接收消息:
每次开发者接收用户消息时,微信服务器都会带上signature、timestamp、nonce和echostr这四个参数访问开发者设置的URL。
开发者依然需要通过对签名的效验来判断消息的真实性,效验方式与首次提交验证申请一致。
当普通微信用户向公众账号发送消息时,微信服务器会将POST该消息到开发者填写的URL上。
处理不同类型的消息:
文本消息:开发者会收到文本内容。
图片、语音、视频消息:开发者会收到媒体ID,需要使用基础支持中的“上传下载多媒体文件”接口来获取媒体文件。
地理位置信息:开发者会收到地理位置的经纬度信息。
链接消息:开发者会收到链接地址。
事件推送:事件推送的MsgType一般为event,也会作为一类消息推送到开发者填写的URL上。
响应消息:
开发者在接收到消息后,可以根据业务需求进行相应的处理,并可以选择回复消息给用户。
回复消息时,需要按照微信规定的XML格式进行封装,并通过POST请求发送到微信服务器指定的URL上。
注意事项:
开发者需要确保填写的URL能够正确处理微信服务器的GET和POST请求。
开发者需要妥善保管token等敏感信息,避免泄露。
开发者需要定期检查并更新自己的代码,以适应微信接口的变化。