From 67fb74fa2661ce88132928b0db7c1fbe714072ca Mon Sep 17 00:00:00 2001 From: yumoqing Date: Mon, 2 Mar 2026 13:52:31 +0800 Subject: [PATCH] bugfix --- woa/init.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/woa/init.py b/woa/init.py index 2b604f0..b04fe8b 100644 --- a/woa/init.py +++ b/woa/init.py @@ -179,6 +179,10 @@ class WOAHandler: async def handle_post(self, request: web.Request) -> web.Response: """处理用户消息和事件""" # 1. 验证签名 + query = request.query + signature = query.get('signature', '') + timestamp = query.get('timestamp', '') + nonce = query.get('nonce', '') is_valid, _ = self._verify_signature(request) if not is_valid: return web.Response(text="failed", status=403) @@ -189,7 +193,10 @@ class WOAHandler: body = await request.read() # decrypt_message 会自动处理解密和 XML 解析,返回 wechatpy 的消息对象 # 如果未开启加密,它也会正常解析 XML - msg = self.crypto.decrypt_message(body) + msg = self.crypto.decrypt_message(body, + signature=signature, + timestamp=timestamp, + nonce=nonce) except Exception as e: error(f"消息解密或解析失败: {e}, {body=}") return web.Response(text="success") # 防止微信重试