node-easywechat 3.7.2 → 3.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v3.7.3 (2024-07-26)
5
+
6
+ - Fix: 修复各模块获取服务端消息时,未能获取最新请求导致解密异常的问题。(#88)
7
+
4
8
  ## v3.7.2 (2024-07-22)
5
9
 
6
10
  - Fix: 补充公众号和小程序服务端缺失的获取解密消息的方法,并优化其它模块该方法的逻辑;(#86)
package/README.md CHANGED
@@ -292,7 +292,7 @@ client.setLogger((...args) => {
292
292
 
293
293
  #### 缓存模块
294
294
 
295
- 框架默认使用文件缓存读取到的 `access_token` 等值,如需要改用其他缓存方式(如:redis),请实现接口 `CacheInterface` 并通过 `app.setCacher` 方法进行模块替换。
295
+ 框架默认使用文件缓存读取到的 `access_token` 等值,如需要改用其他缓存方式(如:redis),请实现接口 `CacheInterface` 并通过 `app.setCache` 方法进行模块替换。
296
296
 
297
297
  ```js
298
298
  const { OfficialAccount, CacheInterface } = require('node-easywechat');
@@ -337,7 +337,7 @@ let app = new OfficialAccount({
337
337
  });
338
338
 
339
339
  // 替换缓存实例
340
- app.setCacher(new RedisCacher(new Redis));
340
+ app.setCache(new RedisCacher(new Redis));
341
341
  ```
342
342
 
343
343
  #### 请求模块
@@ -26,6 +26,7 @@ class ServerRequest {
26
26
  .withProtocolVersion(version)
27
27
  .withQueryParams((0, url_1.parse)(url, true).query || {});
28
28
  if (body) {
29
+ this.parsedBody = {};
29
30
  this.withBody(body);
30
31
  }
31
32
  }
@@ -33,7 +33,7 @@ declare class Server extends ServerInterface {
33
33
  * @returns
34
34
  */
35
35
  getRequestMessage(request?: ServerRequestInterface): Promise<Message>;
36
- protected decryptRequestMessage(query: Record<string, any>): ServerHandlerClosure<Message>;
36
+ protected decryptRequestMessage(): ServerHandlerClosure<Message>;
37
37
  /**
38
38
  * 获取解密后的消息
39
39
  * @param request 未设置该参数时,则从当前服务端收到的请求中获取
@@ -23,7 +23,7 @@ class Server extends ServerInterface_1.default {
23
23
  }
24
24
  let message = await this.getRequestMessage(this.request);
25
25
  if (this.encryptor && query['msg_signature']) {
26
- this.prepend(this.decryptRequestMessage(query));
26
+ this.prepend(this.decryptRequestMessage());
27
27
  }
28
28
  let response = await this.handle(new Response_1.default(200, {}, 'success'), message);
29
29
  if (!(response instanceof Response_1.default)) {
@@ -64,8 +64,9 @@ class Server extends ServerInterface_1.default {
64
64
  getRequestMessage(request = null) {
65
65
  return Message_1.default.createFromRequest(request || this.request);
66
66
  }
67
- decryptRequestMessage(query) {
67
+ decryptRequestMessage() {
68
68
  return async (message, next) => {
69
+ let query = this.request.getQueryParams();
69
70
  message = await this.decryptMessage(message, this.encryptor, query['msg_signature'] || '', query['timestamp'] || '', query['nonce'] || '');
70
71
  return next(message);
71
72
  };
@@ -50,7 +50,7 @@ declare class Server extends ServerInterface {
50
50
  * @returns
51
51
  */
52
52
  handleThirdFastRegister(handler: ServerHandlerClosure<Message>): this;
53
- protected decryptRequestMessage(query: Record<string, any>): ServerHandlerClosure<Message>;
53
+ protected decryptRequestMessage(): ServerHandlerClosure<Message>;
54
54
  /**
55
55
  * 获取来自微信服务器的推送消息
56
56
  * @param request 未设置该参数时,则从当前服务端收到的请求中获取
@@ -24,7 +24,7 @@ class Server extends ServerInterface_1.default {
24
24
  }
25
25
  let message = await this.getRequestMessage(this.request);
26
26
  if (this.encryptor && query['msg_signature']) {
27
- this.prepend(this.decryptRequestMessage(query));
27
+ this.prepend(this.decryptRequestMessage());
28
28
  }
29
29
  let response = await this.handle(new Response_1.default(200, {}, 'success'), message);
30
30
  if (!(response instanceof Response_1.default)) {
@@ -96,8 +96,9 @@ class Server extends ServerInterface_1.default {
96
96
  return message.InfoType === 'notify_third_fasteregister' ? handler(message, next) : next(message);
97
97
  });
98
98
  }
99
- decryptRequestMessage(query) {
99
+ decryptRequestMessage() {
100
100
  return async (message, next) => {
101
+ let query = this.request.getQueryParams();
101
102
  message = await this.decryptMessage(message, this.encryptor, query['msg_signature'] || '', query['timestamp'] || '', query['nonce'] || '');
102
103
  return next(message);
103
104
  };
@@ -92,7 +92,7 @@ declare class Server extends ServerInterface {
92
92
  * @returns
93
93
  */
94
94
  getRequestMessage(request?: ServerRequestInterface): Promise<Message>;
95
- protected decryptRequestMessage(query: Record<string, any>): ServerHandlerClosure<Message>;
95
+ protected decryptRequestMessage(): ServerHandlerClosure<Message>;
96
96
  /**
97
97
  * 获取解密后的消息
98
98
  * @param request 未设置该参数时,则从当前服务端收到的请求中获取
@@ -25,7 +25,7 @@ class Server extends ServerInterface_1.default {
25
25
  }
26
26
  let message = await this.getRequestMessage(this.request);
27
27
  if (this.encryptor && query['msg_signature']) {
28
- this.prepend(this.decryptRequestMessage(query));
28
+ this.prepend(this.decryptRequestMessage());
29
29
  }
30
30
  let response = await this.handle(new Response_1.default(200, {}, 'success'), message);
31
31
  if (!(response instanceof Response_1.default)) {
@@ -176,8 +176,9 @@ class Server extends ServerInterface_1.default {
176
176
  getRequestMessage(request = null) {
177
177
  return Message_1.default.createFromRequest(request ?? this.request);
178
178
  }
179
- decryptRequestMessage(query) {
179
+ decryptRequestMessage() {
180
180
  return async (message, next) => {
181
+ let query = this.request.getQueryParams();
181
182
  message = await this.decryptMessage(message, this.encryptor, query['msg_signature'] ?? '', query['timestamp'] ?? '', query['nonce'] ?? '');
182
183
  return next(message);
183
184
  };
@@ -79,7 +79,7 @@ declare class Server extends ServerInterface {
79
79
  */
80
80
  getRequestMessage(request?: ServerRequestInterface): Promise<Message>;
81
81
  protected validateUrl(): (message: Message, next: ServerHandlerClosure) => Promise<Response>;
82
- protected decryptRequestMessage(query: Record<string, any>): ServerHandlerClosure;
82
+ protected decryptRequestMessage(): ServerHandlerClosure;
83
83
  /**
84
84
  * 获取解密后的消息
85
85
  * @param request 未设置该参数时,则从当前服务端收到的请求中获取
@@ -23,7 +23,7 @@ class Server extends ServerInterface_1.default {
23
23
  }
24
24
  let message = await this.getRequestMessage(this.request);
25
25
  if (this.encryptor && query['msg_signature']) {
26
- this.prepend(this.decryptRequestMessage(query));
26
+ this.prepend(this.decryptRequestMessage());
27
27
  }
28
28
  let response = await this.handle(new Response_1.default(200, {}, 'SUCCESS'), message);
29
29
  if (!(response instanceof Response_1.default)) {
@@ -151,8 +151,9 @@ class Server extends ServerInterface_1.default {
151
151
  return new Response_1.default(200, { 'Content-Type': 'text/html' }, echostr);
152
152
  };
153
153
  }
154
- decryptRequestMessage(query) {
154
+ decryptRequestMessage() {
155
155
  return async (message, next) => {
156
+ let query = this.request.getQueryParams();
156
157
  message = await this.decryptMessage(message, this.encryptor, query['msg_signature'] ?? '', query['timestamp'] ?? '', query['nonce'] ?? '');
157
158
  return next(message);
158
159
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-easywechat",
3
- "version": "3.7.2",
3
+ "version": "3.7.3",
4
4
  "description": "EasyWechat SDK for Node.js (NOT OFFICIAL)",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {