@tmsfe/tms-core 0.0.156 → 0.0.158
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/package.json +1 -1
- package/src/encrypt/encrypt-util.ts +15 -2
- package/src/encrypt/index.ts +6 -3
package/package.json
CHANGED
|
@@ -149,6 +149,7 @@ const eccUtil = {
|
|
|
149
149
|
return eccUtil._privateKeyInfo;
|
|
150
150
|
},
|
|
151
151
|
// 解析gwCode
|
|
152
|
+
/* eslint-disable complexity */
|
|
152
153
|
resolveGwCode: async (codeStr: string): Promise<{ retry: boolean, success: boolean }> => {
|
|
153
154
|
if (!codeStr) return { retry: false, success: true };
|
|
154
155
|
const code = parseInt(codeStr, 10);
|
|
@@ -166,10 +167,17 @@ const eccUtil = {
|
|
|
166
167
|
}
|
|
167
168
|
case 11307: // 加密未开启
|
|
168
169
|
return { retry: false, success: false };
|
|
169
|
-
|
|
170
|
+
case 11301:
|
|
171
|
+
case 11302:
|
|
172
|
+
case 11303:
|
|
173
|
+
case 11304:
|
|
174
|
+
case 11308:
|
|
170
175
|
return { retry: false, success: false };
|
|
176
|
+
default: // 其他网关错误码
|
|
177
|
+
return { retry: false, success: true };
|
|
171
178
|
}
|
|
172
179
|
},
|
|
180
|
+
/* eslint-enable complexity */
|
|
173
181
|
execEncrypt: (input: string, ignoreNull = false): BaseResp<{
|
|
174
182
|
cryptoKeyInfo: CryptoKeyInfo,
|
|
175
183
|
encryptedContent: any } | null> => {
|
|
@@ -380,7 +388,12 @@ const resDecrypt = async (header, data, cryptoKeyInfo: CryptoKeyInfo): Promise<B
|
|
|
380
388
|
'content-type': contentType, // 响应内容类型
|
|
381
389
|
} = formatHeader;
|
|
382
390
|
if (!encryptResponseMode || encryptResponseMode === '0') { // 不需要解密,直接返回
|
|
383
|
-
|
|
391
|
+
const dataStr = base64Util.encodeUTF8(new Uint8Array(data));
|
|
392
|
+
return new baseUtil.BaseRespFac({
|
|
393
|
+
header,
|
|
394
|
+
data: JSON.parse(dataStr),
|
|
395
|
+
retry: false,
|
|
396
|
+
});
|
|
384
397
|
}
|
|
385
398
|
const { retry, success: gwSuccess } = await eccUtil.resolveGwCode(gatewayCode);
|
|
386
399
|
if (!gwSuccess) {
|
package/src/encrypt/index.ts
CHANGED
|
@@ -87,7 +87,8 @@ function proxyWxRequest(): void {
|
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
89
|
// 加密请求数据
|
|
90
|
-
const { data: formatData, header: formatHeader, msg, cryptoKeyInfo } = util
|
|
90
|
+
const { data: formatData, header: formatHeader, msg, cryptoKeyInfo } = util
|
|
91
|
+
.reqEncrypt({ url, method, data, header });
|
|
91
92
|
if (!cryptoKeyInfo) {
|
|
92
93
|
// 如果没有加密信息,则不走加密
|
|
93
94
|
util.logInfo(url, traceparent, msg);
|
|
@@ -103,8 +104,9 @@ function proxyWxRequest(): void {
|
|
|
103
104
|
}
|
|
104
105
|
|
|
105
106
|
let completeResolver;
|
|
106
|
-
const completePromp = new Promise(resolve => {
|
|
107
|
-
|
|
107
|
+
const completePromp = new Promise((resolve) => {
|
|
108
|
+
completeResolver = resolve;
|
|
109
|
+
});
|
|
108
110
|
originalRequestApi.call(this, {
|
|
109
111
|
...originalOptions,
|
|
110
112
|
data: formatData,
|
|
@@ -116,6 +118,7 @@ function proxyWxRequest(): void {
|
|
|
116
118
|
const { success: resSuccess, msg, res } = await encryptUtil.resDecrypt(resHeader, resData, cryptoKeyInfo);
|
|
117
119
|
if (resSuccess) {
|
|
118
120
|
util.logInfo(url, traceparent, '解密成功');
|
|
121
|
+
encryptUtil.dealEncryptionSwitch(url, resHeader);
|
|
119
122
|
success?.call(this, res);
|
|
120
123
|
const completeRes: any = await completePromp;
|
|
121
124
|
completeRes.header = resHeader;
|