@pisell/private-materials 6.3.45 → 6.3.47
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/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +8 -8
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +9 -9
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +9 -9
- package/es/components/Sales/Summary/utils.d.ts +1 -1
- package/es/components/appointmentBooking/components/Voucher/index.js +1 -0
- package/es/components/booking/components/voucher/index.js +3 -1
- package/es/components/booking/info/service2/utils.d.ts +1 -1
- package/es/components/booking/utils.d.ts +2 -2
- package/es/components/eftposPay/amount.d.ts +1 -1
- package/es/components/eftposPay/device.d.ts +1 -1
- package/es/components/eftposPay/hooks.d.ts +2 -2
- package/es/components/eftposPay/linkly/hooks/useTimeQuery.js +14 -6
- package/es/components/eftposPay/payo/config.js +70 -32
- package/es/components/eftposPay/payo/payment.d.ts +66 -0
- package/es/components/eftposPay/payo/payment.js +579 -0
- package/es/components/eftposPay/store/index.d.ts +6 -6
- package/es/components/eftposPay/utils/log/index.d.ts +110 -0
- package/es/components/eftposPay/utils/log/index.js +371 -0
- package/es/components/index.d.ts +2 -1
- package/es/components/index.js +2 -1
- package/es/components/pay/toC/PaymentMethods/WalletPass/serve.d.ts +6 -0
- package/es/components/pay/toC/PaymentMethods/WalletPass/utils.js +4 -2
- package/es/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.js +2 -0
- package/es/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.less +13 -3
- package/es/components/pay/toC/locales.d.ts +3 -0
- package/es/components/pay/toC/locales.js +6 -3
- package/es/components/wallet/Detail/index.js +34 -2
- package/es/components/wallet/Detail/index.less +11 -0
- package/es/components/wallet/Detail/locales.d.ts +6 -0
- package/es/components/wallet/Detail/locales.js +14 -2
- package/es/components/wallet/Voucher/index.js +11 -10
- package/es/components/wallet/components/WalletCard.js +5 -1
- package/es/components/wallet/index.js +4 -2
- package/es/components/wallet/serve.d.ts +7 -0
- package/es/components/wallet/utils.d.ts +48 -0
- package/es/components/wallet/utils.js +342 -0
- package/es/index.d.ts +3 -2
- package/es/index.js +4 -3
- package/es/plus/walletPassGallery/components/passDetail/index.js +72 -28
- package/es/plus/walletPassGallery/index.js +4 -2
- package/es/plus/walletPassGallery/serve.d.ts +2 -0
- package/es/plus/walletPassGallery/serve.js +1 -1
- package/lib/components/Sales/Summary/utils.d.ts +1 -1
- package/lib/components/appointmentBooking/components/Voucher/index.js +1 -0
- package/lib/components/booking/components/voucher/index.js +3 -1
- package/lib/components/booking/info/service2/utils.d.ts +1 -1
- package/lib/components/booking/utils.d.ts +2 -2
- package/lib/components/eftposPay/amount.d.ts +1 -1
- package/lib/components/eftposPay/device.d.ts +1 -1
- package/lib/components/eftposPay/hooks.d.ts +2 -2
- package/lib/components/eftposPay/linkly/hooks/useTimeQuery.js +12 -6
- package/lib/components/eftposPay/payo/config.js +98 -73
- package/lib/components/eftposPay/payo/payment.d.ts +66 -0
- package/lib/components/eftposPay/payo/payment.js +357 -0
- package/lib/components/eftposPay/store/index.d.ts +6 -6
- package/lib/components/eftposPay/utils/log/index.d.ts +110 -0
- package/lib/components/eftposPay/utils/log/index.js +294 -0
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +3 -0
- package/lib/components/pay/toC/PaymentMethods/WalletPass/serve.d.ts +6 -0
- package/lib/components/pay/toC/PaymentMethods/WalletPass/utils.js +4 -2
- package/lib/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.js +1 -1
- package/lib/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.less +13 -3
- package/lib/components/pay/toC/locales.d.ts +3 -0
- package/lib/components/pay/toC/locales.js +6 -3
- package/lib/components/wallet/Detail/index.js +31 -3
- package/lib/components/wallet/Detail/index.less +11 -0
- package/lib/components/wallet/Detail/locales.d.ts +6 -0
- package/lib/components/wallet/Detail/locales.js +14 -2
- package/lib/components/wallet/Voucher/index.js +8 -8
- package/lib/components/wallet/components/WalletCard.js +4 -0
- package/lib/components/wallet/index.js +2 -2
- package/lib/components/wallet/serve.d.ts +7 -0
- package/lib/components/wallet/utils.d.ts +48 -0
- package/lib/components/wallet/utils.js +287 -0
- package/lib/index.d.ts +3 -2
- package/lib/index.js +5 -2
- package/lib/plus/walletPassGallery/components/passDetail/index.js +46 -12
- package/lib/plus/walletPassGallery/index.js +4 -2
- package/lib/plus/walletPassGallery/serve.d.ts +2 -0
- package/lib/plus/walletPassGallery/serve.js +1 -1
- package/lowcode/wallet-pass-detail/meta.ts +84 -0
- package/package.json +2 -2
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/components/eftposPay/payo/payment.ts
|
|
30
|
+
var payment_exports = {};
|
|
31
|
+
__export(payment_exports, {
|
|
32
|
+
ActionType: () => ActionType,
|
|
33
|
+
usePayment: () => usePayment
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(payment_exports);
|
|
36
|
+
var import_react = require("react");
|
|
37
|
+
var import_const = require("../const");
|
|
38
|
+
var import_log = __toESM(require("../utils/log"));
|
|
39
|
+
var QUERY_START_DELAY = 1e3 * 10;
|
|
40
|
+
var GLOBAL_TIMEOUT = 1e3 * 60 * 2;
|
|
41
|
+
var REQUEST_TIMEOUT = 1e3 * 10;
|
|
42
|
+
var QUERY_INTERVAL = 1e3 * 2;
|
|
43
|
+
var ActionType = /* @__PURE__ */ ((ActionType2) => {
|
|
44
|
+
ActionType2["Pay"] = "pay";
|
|
45
|
+
ActionType2["Refund"] = "refund";
|
|
46
|
+
ActionType2["Query"] = "query";
|
|
47
|
+
return ActionType2;
|
|
48
|
+
})(ActionType || {});
|
|
49
|
+
var isRequestFailed = (code) => {
|
|
50
|
+
return code && `${code}` !== import_const.PayStatus.Timeout && `${code}` !== import_const.PayStatus.PayTimeout;
|
|
51
|
+
};
|
|
52
|
+
var usePayment = (options) => {
|
|
53
|
+
const { payApi, refundApi, checkApi, shouldContinue = () => true } = options;
|
|
54
|
+
const payControllerRef = (0, import_react.useRef)(null);
|
|
55
|
+
const queryControllerRef = (0, import_react.useRef)(null);
|
|
56
|
+
const queryStartTimerRef = (0, import_react.useRef)(null);
|
|
57
|
+
const globalTimeoutTimerRef = (0, import_react.useRef)(
|
|
58
|
+
null
|
|
59
|
+
);
|
|
60
|
+
const requestTimeoutTimerRef = (0, import_react.useRef)(
|
|
61
|
+
null
|
|
62
|
+
);
|
|
63
|
+
const queryIntervalTimerRef = (0, import_react.useRef)(
|
|
64
|
+
null
|
|
65
|
+
);
|
|
66
|
+
const isFinishedRef = (0, import_react.useRef)(false);
|
|
67
|
+
const isQueryingRef = (0, import_react.useRef)(false);
|
|
68
|
+
const callbacksRef = (0, import_react.useRef)(null);
|
|
69
|
+
const isRequestTimeoutRef = (0, import_react.useRef)(false);
|
|
70
|
+
const currentQueryIdRef = (0, import_react.useRef)(0);
|
|
71
|
+
const currentRunIdRef = (0, import_react.useRef)(0);
|
|
72
|
+
const clean = (params) => {
|
|
73
|
+
const { clearCallbacks = true } = params || {};
|
|
74
|
+
console.log("🧹 清理所有资源", { clearCallbacks });
|
|
75
|
+
if (payControllerRef.current) {
|
|
76
|
+
payControllerRef.current.abort();
|
|
77
|
+
payControllerRef.current = null;
|
|
78
|
+
}
|
|
79
|
+
if (queryControllerRef.current) {
|
|
80
|
+
queryControllerRef.current.abort();
|
|
81
|
+
queryControllerRef.current = null;
|
|
82
|
+
}
|
|
83
|
+
if (queryStartTimerRef.current) {
|
|
84
|
+
clearTimeout(queryStartTimerRef.current);
|
|
85
|
+
queryStartTimerRef.current = null;
|
|
86
|
+
}
|
|
87
|
+
if (globalTimeoutTimerRef.current) {
|
|
88
|
+
clearTimeout(globalTimeoutTimerRef.current);
|
|
89
|
+
globalTimeoutTimerRef.current = null;
|
|
90
|
+
}
|
|
91
|
+
if (requestTimeoutTimerRef.current) {
|
|
92
|
+
clearTimeout(requestTimeoutTimerRef.current);
|
|
93
|
+
requestTimeoutTimerRef.current = null;
|
|
94
|
+
}
|
|
95
|
+
if (queryIntervalTimerRef.current) {
|
|
96
|
+
clearTimeout(queryIntervalTimerRef.current);
|
|
97
|
+
queryIntervalTimerRef.current = null;
|
|
98
|
+
}
|
|
99
|
+
isQueryingRef.current = false;
|
|
100
|
+
isFinishedRef.current = false;
|
|
101
|
+
isRequestTimeoutRef.current = false;
|
|
102
|
+
if (clearCallbacks !== false) {
|
|
103
|
+
callbacksRef.current = null;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
const finish = () => {
|
|
107
|
+
if (!isFinishedRef.current) {
|
|
108
|
+
clean();
|
|
109
|
+
isFinishedRef.current = true;
|
|
110
|
+
import_log.default.clearLogs();
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
const handleFinalSuccess = (res, type) => {
|
|
114
|
+
var _a, _b;
|
|
115
|
+
if (isFinishedRef.current || !shouldContinue()) {
|
|
116
|
+
console.log(`⚠️ 已完成或不应继续处理,忽略${type}操作成功结果`);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
(_b = (_a = callbacksRef.current) == null ? void 0 : _a.onSuccess) == null ? void 0 : _b.call(_a, res);
|
|
120
|
+
import_log.default.addLog({ title: "最终结果:支付成功", content: { type, res } });
|
|
121
|
+
finish();
|
|
122
|
+
};
|
|
123
|
+
const handleFinalError = (error, type) => {
|
|
124
|
+
var _a, _b;
|
|
125
|
+
if (isFinishedRef.current || !shouldContinue()) {
|
|
126
|
+
console.log(`⚠️ 已完成或不应继续处理,忽略${type}操作错误`);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
(_b = (_a = callbacksRef.current) == null ? void 0 : _a.onError) == null ? void 0 : _b.call(_a, error);
|
|
130
|
+
import_log.default.addLog({
|
|
131
|
+
title: "最终结果:支付失败",
|
|
132
|
+
content: { type, error }
|
|
133
|
+
});
|
|
134
|
+
finish();
|
|
135
|
+
};
|
|
136
|
+
const createTimeoutPromise = (timeoutMs) => {
|
|
137
|
+
return new Promise((_, reject) => {
|
|
138
|
+
requestTimeoutTimerRef.current = setTimeout(() => {
|
|
139
|
+
console.log(`⏱️ 单次查询超时(${timeoutMs / 1e3}秒),强制终止`);
|
|
140
|
+
isRequestTimeoutRef.current = true;
|
|
141
|
+
if (queryControllerRef.current) {
|
|
142
|
+
queryControllerRef.current.abort();
|
|
143
|
+
}
|
|
144
|
+
reject(new Error("REQUEST_TIMEOUT"));
|
|
145
|
+
}, timeoutMs);
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
const performQuery = async (paymentNum) => {
|
|
149
|
+
if (isFinishedRef.current || !shouldContinue()) {
|
|
150
|
+
import_log.default.addLog({
|
|
151
|
+
title: "支付轮询前置校验:支付已完成或不应继续处理,取消查询"
|
|
152
|
+
});
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (queryControllerRef.current) {
|
|
156
|
+
queryControllerRef.current.abort();
|
|
157
|
+
queryControllerRef.current = null;
|
|
158
|
+
}
|
|
159
|
+
if (requestTimeoutTimerRef.current) {
|
|
160
|
+
clearTimeout(requestTimeoutTimerRef.current);
|
|
161
|
+
requestTimeoutTimerRef.current = null;
|
|
162
|
+
}
|
|
163
|
+
const queryId = Date.now();
|
|
164
|
+
currentQueryIdRef.current = queryId;
|
|
165
|
+
isRequestTimeoutRef.current = false;
|
|
166
|
+
queryControllerRef.current = new AbortController();
|
|
167
|
+
const { signal } = queryControllerRef.current;
|
|
168
|
+
try {
|
|
169
|
+
import_log.default.addLog({ title: "支付轮询:开始单次查询" });
|
|
170
|
+
const res = await Promise.race([
|
|
171
|
+
checkApi({ number: paymentNum }, { signal }),
|
|
172
|
+
createTimeoutPromise(REQUEST_TIMEOUT)
|
|
173
|
+
]);
|
|
174
|
+
if (requestTimeoutTimerRef.current) {
|
|
175
|
+
clearTimeout(requestTimeoutTimerRef.current);
|
|
176
|
+
requestTimeoutTimerRef.current = null;
|
|
177
|
+
}
|
|
178
|
+
if (queryId < currentQueryIdRef.current) {
|
|
179
|
+
import_log.default.addLog({ title: "支付轮询结果:过期的查询响应,忽略" });
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
if (isFinishedRef.current || !shouldContinue()) {
|
|
183
|
+
import_log.default.addLog({ title: "支付轮询结果:支付已完成或不应继续处理" });
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (res && `${res.code}` === "200") {
|
|
187
|
+
import_log.default.addLog({ title: "支付轮询结果:支付成功" });
|
|
188
|
+
handleFinalSuccess(res, "query" /* Query */);
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
if (isRequestFailed(res == null ? void 0 : res.code)) {
|
|
192
|
+
import_log.default.addLog({
|
|
193
|
+
title: "支付轮询结果:有明确错误code,停止轮询",
|
|
194
|
+
content: res
|
|
195
|
+
});
|
|
196
|
+
handleFinalError(res, "query" /* Query */);
|
|
197
|
+
} else {
|
|
198
|
+
import_log.default.addLog({
|
|
199
|
+
title: "支付轮询结果:查询返回失败但没有明确code或超时code,继续轮询",
|
|
200
|
+
content: res
|
|
201
|
+
});
|
|
202
|
+
scheduleNextQuery(paymentNum);
|
|
203
|
+
}
|
|
204
|
+
} catch (error) {
|
|
205
|
+
if (requestTimeoutTimerRef.current) {
|
|
206
|
+
clearTimeout(requestTimeoutTimerRef.current);
|
|
207
|
+
requestTimeoutTimerRef.current = null;
|
|
208
|
+
}
|
|
209
|
+
if (queryId < currentQueryIdRef.current) {
|
|
210
|
+
import_log.default.addLog({
|
|
211
|
+
title: "支付轮询结果:error-过期的查询异常,忽略"
|
|
212
|
+
});
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
if (isFinishedRef.current || !shouldContinue()) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
if (isRequestTimeoutRef.current || (error == null ? void 0 : error.name) === "AbortError" || (error == null ? void 0 : error.message) === "REQUEST_TIMEOUT") {
|
|
219
|
+
import_log.default.addLog({
|
|
220
|
+
title: "支付轮询结果:error-请求被取消或超时,继续轮询"
|
|
221
|
+
});
|
|
222
|
+
scheduleNextQuery(paymentNum);
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
if (isRequestFailed(error == null ? void 0 : error.code)) {
|
|
226
|
+
import_log.default.addLog({
|
|
227
|
+
title: "支付轮询结果:error-有明确错误code,停止轮询",
|
|
228
|
+
content: error
|
|
229
|
+
});
|
|
230
|
+
handleFinalError(error, "query" /* Query */);
|
|
231
|
+
} else {
|
|
232
|
+
import_log.default.addLog({
|
|
233
|
+
title: "支付轮询结果:error-无明确code或者code不是超时,继续轮询",
|
|
234
|
+
content: error
|
|
235
|
+
});
|
|
236
|
+
scheduleNextQuery(paymentNum);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
const scheduleNextQuery = (paymentNum) => {
|
|
241
|
+
if (isFinishedRef.current || !shouldContinue()) {
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
if (queryIntervalTimerRef.current) {
|
|
245
|
+
clearTimeout(queryIntervalTimerRef.current);
|
|
246
|
+
}
|
|
247
|
+
queryIntervalTimerRef.current = setTimeout(() => {
|
|
248
|
+
import_log.default.addLog({ title: "支付轮询:安排下一次查询" });
|
|
249
|
+
performQuery(paymentNum);
|
|
250
|
+
}, QUERY_INTERVAL);
|
|
251
|
+
};
|
|
252
|
+
const startQuery = (paymentNum) => {
|
|
253
|
+
if (isFinishedRef.current || !shouldContinue() || isQueryingRef.current) {
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
isQueryingRef.current = true;
|
|
257
|
+
globalTimeoutTimerRef.current = setTimeout(() => {
|
|
258
|
+
if (isFinishedRef.current) {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
console.log("⏱️ 轮询全局超时(2分钟),终止所有请求");
|
|
262
|
+
import_log.default.addLog({ title: "轮询全局超时(2分钟),终止所有请求" });
|
|
263
|
+
handleFinalError(
|
|
264
|
+
{ code: import_const.PayStatus.Timeout, message: "交易超时" },
|
|
265
|
+
"query" /* Query */
|
|
266
|
+
);
|
|
267
|
+
}, GLOBAL_TIMEOUT);
|
|
268
|
+
performQuery(paymentNum);
|
|
269
|
+
};
|
|
270
|
+
const run = async (options2) => {
|
|
271
|
+
const {
|
|
272
|
+
paymentType = "pay" /* Pay */,
|
|
273
|
+
params,
|
|
274
|
+
paymentNum,
|
|
275
|
+
callbacks
|
|
276
|
+
} = options2;
|
|
277
|
+
const runId = Date.now();
|
|
278
|
+
currentRunIdRef.current = runId;
|
|
279
|
+
const { pay_param_base64, ...otherParams } = params || {};
|
|
280
|
+
import_log.default.init(paymentNum, {
|
|
281
|
+
orderId: options2 == null ? void 0 : options2.orderId,
|
|
282
|
+
deviceId: options2 == null ? void 0 : options2.deviceId,
|
|
283
|
+
paymentType: `PAYO_${paymentType}`,
|
|
284
|
+
params: otherParams
|
|
285
|
+
});
|
|
286
|
+
isFinishedRef.current = true;
|
|
287
|
+
clean({ clearCallbacks: false });
|
|
288
|
+
callbacksRef.current = callbacks;
|
|
289
|
+
queryStartTimerRef.current = setTimeout(() => {
|
|
290
|
+
import_log.default.addLog({ title: "支付后10秒开始轮询" });
|
|
291
|
+
startQuery(paymentNum);
|
|
292
|
+
}, QUERY_START_DELAY);
|
|
293
|
+
payControllerRef.current = new AbortController();
|
|
294
|
+
const { signal } = payControllerRef.current;
|
|
295
|
+
try {
|
|
296
|
+
import_log.default.addLog({ title: "发起支付请求" });
|
|
297
|
+
const resultPromise = paymentType === "pay" /* Pay */ ? payApi : refundApi;
|
|
298
|
+
if (!resultPromise) {
|
|
299
|
+
throw new Error(
|
|
300
|
+
`${paymentType === "pay" /* Pay */ ? "支付" : "退款"}接口不存在`
|
|
301
|
+
);
|
|
302
|
+
}
|
|
303
|
+
const res = await (resultPromise == null ? void 0 : resultPromise(params, { signal }));
|
|
304
|
+
if (runId < currentRunIdRef.current) {
|
|
305
|
+
import_log.default.addLog({ title: "支付响应过期,忽略" });
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
if (isFinishedRef.current || !shouldContinue()) {
|
|
309
|
+
import_log.default.addLog({ title: "支付返回时已完成或不应继续处理" });
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
if (res && `${res.code}` === "200") {
|
|
313
|
+
import_log.default.addLog({ title: "支付接口成功" });
|
|
314
|
+
handleFinalSuccess(res, paymentType);
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
if (isRequestFailed(res == null ? void 0 : res.code)) {
|
|
318
|
+
import_log.default.addLog({ title: "支付接口返回失败", content: { res } });
|
|
319
|
+
handleFinalError(res, "pay" /* Pay */);
|
|
320
|
+
} else {
|
|
321
|
+
import_log.default.addLog({
|
|
322
|
+
title: "支付超时或无明确错误,等待轮询结果",
|
|
323
|
+
content: { res }
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
} catch (error) {
|
|
327
|
+
if (runId < currentRunIdRef.current) {
|
|
328
|
+
import_log.default.addLog({ title: "支付响应过期,忽略" });
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
if (isFinishedRef.current || !shouldContinue()) {
|
|
332
|
+
import_log.default.addLog({ title: "支付异常时已完成或不应继续处理" });
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
if (isRequestFailed(error == null ? void 0 : error.code)) {
|
|
336
|
+
import_log.default.addLog({ title: "支付接口异常", content: { error } });
|
|
337
|
+
handleFinalError(error, paymentType);
|
|
338
|
+
} else {
|
|
339
|
+
import_log.default.addLog({
|
|
340
|
+
title: "支付超时或无明确错误,等待轮询结果",
|
|
341
|
+
content: { error }
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
const stop = () => {
|
|
347
|
+
import_log.default.addLog({ title: "手动停止支付流程" });
|
|
348
|
+
clean();
|
|
349
|
+
isFinishedRef.current = true;
|
|
350
|
+
};
|
|
351
|
+
return { run, stop, clean };
|
|
352
|
+
};
|
|
353
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
354
|
+
0 && (module.exports = {
|
|
355
|
+
ActionType,
|
|
356
|
+
usePayment
|
|
357
|
+
});
|
|
@@ -174,7 +174,7 @@ export declare const updateCustom: (payload: {
|
|
|
174
174
|
export declare const updateStatus: (status: 'loading' | 'warn' | 'fail' | 'success' | 'question') => {
|
|
175
175
|
type: EActionTypes;
|
|
176
176
|
payload: {
|
|
177
|
-
status: "
|
|
177
|
+
status: "success" | "warn" | "loading" | "fail" | "question";
|
|
178
178
|
};
|
|
179
179
|
};
|
|
180
180
|
/**
|
|
@@ -295,20 +295,20 @@ export declare const backUpFree: (payload: Partial<State>) => {
|
|
|
295
295
|
name?: string | undefined;
|
|
296
296
|
symbol?: string | undefined;
|
|
297
297
|
amount?: string | number | undefined;
|
|
298
|
-
mode?: "
|
|
298
|
+
mode?: "pay" | "fullPay" | "refund" | "query" | undefined;
|
|
299
299
|
order_id?: string | number | undefined;
|
|
300
|
-
eftpos?: "
|
|
301
|
-
action?: "amount" | "
|
|
300
|
+
eftpos?: "payo" | "tyro" | "windcave" | "stripe" | "linkly" | undefined;
|
|
301
|
+
action?: "amount" | "deviceList" | "pay" | undefined;
|
|
302
302
|
key?: number | undefined;
|
|
303
303
|
step?: number | undefined;
|
|
304
304
|
title?: string | undefined;
|
|
305
305
|
subTitle?: string | undefined;
|
|
306
|
-
type?: "
|
|
306
|
+
type?: "step" | "unset" | undefined;
|
|
307
307
|
render?: boolean | undefined;
|
|
308
308
|
net?: boolean | undefined;
|
|
309
309
|
component?: string | undefined;
|
|
310
310
|
form?: string | undefined;
|
|
311
|
-
status?: "
|
|
311
|
+
status?: "success" | "warn" | "loading" | "fail" | "pedding" | "resove" | "reject" | "question" | undefined;
|
|
312
312
|
warn?: string | undefined;
|
|
313
313
|
steps?: {
|
|
314
314
|
/** 用于重置当前步骤 */
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
export interface LogEntry {
|
|
2
|
+
/** 日志标题 */
|
|
3
|
+
title: string;
|
|
4
|
+
/** 日志内容 */
|
|
5
|
+
content?: any;
|
|
6
|
+
/** 支付时间(精确到毫秒) */
|
|
7
|
+
time: string;
|
|
8
|
+
}
|
|
9
|
+
interface PaymentLogRecord {
|
|
10
|
+
/** 交易记录号 */
|
|
11
|
+
number: string;
|
|
12
|
+
/** 订单ID */
|
|
13
|
+
orderId?: string | number;
|
|
14
|
+
/** 设备ID */
|
|
15
|
+
deviceId?: string | number;
|
|
16
|
+
/** 支付类型 */
|
|
17
|
+
paymentType?: string;
|
|
18
|
+
/** 创建时间 */
|
|
19
|
+
createdAt: string;
|
|
20
|
+
/** 日志条目列表 */
|
|
21
|
+
logs: LogEntry[];
|
|
22
|
+
}
|
|
23
|
+
declare class PaymentLogInstance {
|
|
24
|
+
private static instance;
|
|
25
|
+
/** 当前交易记录号 */
|
|
26
|
+
private currentNumber;
|
|
27
|
+
/** 当前日志记录 */
|
|
28
|
+
private currentRecord;
|
|
29
|
+
private constructor();
|
|
30
|
+
/**
|
|
31
|
+
* 获取单例实例
|
|
32
|
+
*/
|
|
33
|
+
static getInstance(): PaymentLogInstance;
|
|
34
|
+
/**
|
|
35
|
+
* 初始化支付日志
|
|
36
|
+
* @param number 交易记录号
|
|
37
|
+
* @param options 初始化选项
|
|
38
|
+
*/
|
|
39
|
+
init(number: string, options?: {
|
|
40
|
+
orderId?: string | number;
|
|
41
|
+
deviceId?: string | number;
|
|
42
|
+
paymentType?: string;
|
|
43
|
+
[key: string]: any;
|
|
44
|
+
}): void;
|
|
45
|
+
/**
|
|
46
|
+
* 添加日志条目
|
|
47
|
+
* @param title 日志标题
|
|
48
|
+
* @param content 日志内容
|
|
49
|
+
*/
|
|
50
|
+
addLog(params: {
|
|
51
|
+
title: string;
|
|
52
|
+
content?: any;
|
|
53
|
+
}): void;
|
|
54
|
+
/**
|
|
55
|
+
* 构建日志内容
|
|
56
|
+
* @param record 日志记录
|
|
57
|
+
* @returns 格式化的日志内容数组
|
|
58
|
+
*/
|
|
59
|
+
private buildLogContent;
|
|
60
|
+
/**
|
|
61
|
+
* 发送单条日志记录到飞书
|
|
62
|
+
* @param record 日志记录
|
|
63
|
+
* @param isRestore 是否是恢复上传
|
|
64
|
+
*/
|
|
65
|
+
private sendLogRecord;
|
|
66
|
+
/**
|
|
67
|
+
* 发送日志到飞书
|
|
68
|
+
* @param title 日志标题(可选,仅在需要自定义标题时使用)
|
|
69
|
+
*/
|
|
70
|
+
sendLogs(title?: string): void;
|
|
71
|
+
/**
|
|
72
|
+
* 清除当前日志
|
|
73
|
+
* @param shouldSend 清除前是否发送到飞书,默认为 true
|
|
74
|
+
*/
|
|
75
|
+
clearLogs(shouldSend?: boolean): void;
|
|
76
|
+
/**
|
|
77
|
+
* 检查并上传旧日志
|
|
78
|
+
*/
|
|
79
|
+
private checkAndUploadOldLogs;
|
|
80
|
+
/**
|
|
81
|
+
* 获取所有支付日志对象
|
|
82
|
+
*/
|
|
83
|
+
private getAllLogsObject;
|
|
84
|
+
/**
|
|
85
|
+
* 保存所有支付日志对象
|
|
86
|
+
*/
|
|
87
|
+
private saveAllLogsObject;
|
|
88
|
+
/**
|
|
89
|
+
* 保存到 localStorage
|
|
90
|
+
*/
|
|
91
|
+
private saveToLocalStorage;
|
|
92
|
+
/**
|
|
93
|
+
* 从 localStorage 中删除
|
|
94
|
+
*/
|
|
95
|
+
private removeFromLocalStorage;
|
|
96
|
+
/**
|
|
97
|
+
* 获取所有旧日志
|
|
98
|
+
*/
|
|
99
|
+
private getOldLogsFromLocalStorage;
|
|
100
|
+
/**
|
|
101
|
+
* 获取当前日志记录(用于调试)
|
|
102
|
+
*/
|
|
103
|
+
getCurrentRecord(): PaymentLogRecord | null;
|
|
104
|
+
/**
|
|
105
|
+
* 获取当前交易号(用于调试)
|
|
106
|
+
*/
|
|
107
|
+
getCurrentNumber(): string | null;
|
|
108
|
+
}
|
|
109
|
+
declare const paymentLog: PaymentLogInstance;
|
|
110
|
+
export default paymentLog;
|