@pisell/private-materials 6.3.79 → 6.3.80

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.
Files changed (151) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/meta.js +1 -1
  5. package/build/lowcode/render/default/view.css +1 -1
  6. package/build/lowcode/render/default/view.js +9 -9
  7. package/build/lowcode/view.css +1 -1
  8. package/build/lowcode/view.js +9 -9
  9. package/es/components/appointmentBooking/components/Cart/Item/Total.d.ts +0 -1
  10. package/es/components/appointmentBooking/components/Cart/index.d.ts +0 -1
  11. package/es/components/appointmentBooking/components/Footer/index.d.ts +0 -1
  12. package/es/components/appointmentBooking/deposit/components/PolicyModal/index.d.ts +0 -1
  13. package/es/components/booking/forms/footer.d.ts +0 -1
  14. package/es/components/booking/forms/sendModal/useSendModal.d.ts +0 -1
  15. package/es/components/booking/hooks/useClearCart.d.ts +0 -1
  16. package/es/components/booking/info/date/index.d.ts +1 -0
  17. package/es/components/booking/info/dateRange/index.d.ts +0 -1
  18. package/es/components/eftpos/const.d.ts +3 -1
  19. package/es/components/eftpos/const.js +2 -0
  20. package/es/components/eftpos/device.d.ts +3 -1
  21. package/es/components/eftpos/device.js +5 -3
  22. package/es/components/eftpos/index.d.ts +0 -1
  23. package/es/components/eftpos/index.js +34 -11
  24. package/es/components/eftpos/index.less +26 -1
  25. package/es/components/eftpos/locales.d.ts +3 -0
  26. package/es/components/eftpos/locales.js +3 -0
  27. package/es/components/eftposPay/aggregatePayment/hooks/usePayment.d.ts +6 -0
  28. package/es/components/eftposPay/aggregatePayment/hooks/usePayment.js +125 -0
  29. package/es/components/eftposPay/aggregatePayment/index.d.ts +3 -0
  30. package/es/components/eftposPay/aggregatePayment/index.js +3 -0
  31. package/es/components/eftposPay/aggregatePayment/mock.d.ts +495 -0
  32. package/es/components/eftposPay/aggregatePayment/mock.js +567 -0
  33. package/es/components/eftposPay/aggregatePayment/service.d.ts +24 -0
  34. package/es/components/eftposPay/aggregatePayment/service.js +70 -0
  35. package/es/components/eftposPay/aggregatePayment/types.d.ts +96 -0
  36. package/es/components/eftposPay/aggregatePayment/types.js +61 -0
  37. package/es/components/eftposPay/aggregatePayment/utils/logs.d.ts +110 -0
  38. package/es/components/eftposPay/aggregatePayment/utils/logs.js +385 -0
  39. package/es/components/eftposPay/aggregatePayment/utils/payment.d.ts +132 -0
  40. package/es/components/eftposPay/aggregatePayment/utils/payment.js +1127 -0
  41. package/es/components/eftposPay/amount.d.ts +0 -1
  42. package/es/components/eftposPay/const.d.ts +6 -1
  43. package/es/components/eftposPay/const.js +2 -0
  44. package/es/components/eftposPay/hooks.d.ts +2 -1
  45. package/es/components/eftposPay/hooks.js +12 -0
  46. package/es/components/eftposPay/linkly/index.js +1 -0
  47. package/es/components/eftposPay/manufacturer.d.ts +1 -0
  48. package/es/components/eftposPay/manufacturer.js +4 -0
  49. package/es/components/eftposPay/mx51/Action.d.ts +6 -0
  50. package/es/components/eftposPay/mx51/Action.js +91 -0
  51. package/es/components/eftposPay/mx51/const.d.ts +5 -0
  52. package/es/components/eftposPay/mx51/const.js +69 -0
  53. package/es/components/eftposPay/mx51/index.d.ts +6 -0
  54. package/es/components/eftposPay/mx51/index.js +362 -0
  55. package/es/components/eftposPay/mx51/types.d.ts +136 -0
  56. package/es/components/eftposPay/mx51/types.js +29 -0
  57. package/es/components/eftposPay/mx51/utils.d.ts +10 -0
  58. package/es/components/eftposPay/mx51/utils.js +120 -0
  59. package/es/components/eftposPay/pay.js +7 -2
  60. package/es/components/eftposPay/store/index.d.ts +1 -1
  61. package/es/components/eventBooking/components/Provider/Content/index.d.ts +1 -0
  62. package/es/components/eventBooking/components/Provider/EmptyHolderModal/index.d.ts +0 -1
  63. package/es/components/eventBooking/components/Provider/Header/index.d.ts +1 -0
  64. package/es/components/eventBooking/components/Provider/OrderProductModal/index.d.ts +0 -1
  65. package/es/components/eventBooking/components/Provider/RemoveOptionConfirmModal.d.ts +0 -1
  66. package/es/components/eventBooking/components/Provider/SelectHolderModal.d.ts +1 -0
  67. package/es/components/eventBooking/components/bookingDetailModal/components/Resource.d.ts +1 -0
  68. package/es/components/eventBooking/components/bookingDetailModal/components/Schedule.d.ts +1 -0
  69. package/es/components/eventBooking/components/scheduleCalendar/components/ScheduleTimeItem/index.d.ts +0 -1
  70. package/es/components/pay/toC/WalletPassBlock/components/WalletUseList/index.d.ts +0 -1
  71. package/es/components/pisellSelectCustomerModal/RightPanel/List/index.d.ts +0 -1
  72. package/es/components/shoppingCart/hooks/useAddService.d.ts +0 -1
  73. package/es/components/shoppingCart/hooks/useClearCart.d.ts +0 -1
  74. package/es/plus/saasRegister/components/VertifyEmail.d.ts +0 -1
  75. package/es/plus/skuOptionsSelection/components/OptionsCard/index.d.ts +0 -1
  76. package/es/plus/skuOptionsSelection/components/TitleExtra/index.d.ts +0 -1
  77. package/es/plus/skuOptionsSelection/components/VariantCard/index.d.ts +0 -1
  78. package/es/plus/walletPassGallery/components/passList/index.d.ts +0 -1
  79. package/lib/components/appointmentBooking/components/Cart/Item/Total.d.ts +0 -1
  80. package/lib/components/appointmentBooking/components/Cart/index.d.ts +0 -1
  81. package/lib/components/appointmentBooking/components/Footer/index.d.ts +0 -1
  82. package/lib/components/appointmentBooking/deposit/components/PolicyModal/index.d.ts +0 -1
  83. package/lib/components/booking/forms/footer.d.ts +0 -1
  84. package/lib/components/booking/forms/sendModal/useSendModal.d.ts +0 -1
  85. package/lib/components/booking/hooks/useClearCart.d.ts +0 -1
  86. package/lib/components/booking/info/date/index.d.ts +1 -0
  87. package/lib/components/booking/info/dateRange/index.d.ts +0 -1
  88. package/lib/components/eftpos/const.d.ts +3 -1
  89. package/lib/components/eftpos/const.js +2 -0
  90. package/lib/components/eftpos/device.d.ts +3 -1
  91. package/lib/components/eftpos/device.js +3 -3
  92. package/lib/components/eftpos/index.d.ts +0 -1
  93. package/lib/components/eftpos/index.js +20 -5
  94. package/lib/components/eftpos/index.less +26 -1
  95. package/lib/components/eftpos/locales.d.ts +3 -0
  96. package/lib/components/eftpos/locales.js +3 -0
  97. package/lib/components/eftposPay/aggregatePayment/hooks/usePayment.d.ts +6 -0
  98. package/lib/components/eftposPay/aggregatePayment/hooks/usePayment.js +152 -0
  99. package/lib/components/eftposPay/aggregatePayment/index.d.ts +3 -0
  100. package/lib/components/eftposPay/aggregatePayment/index.js +32 -0
  101. package/lib/components/eftposPay/aggregatePayment/mock.d.ts +495 -0
  102. package/lib/components/eftposPay/aggregatePayment/mock.js +679 -0
  103. package/lib/components/eftposPay/aggregatePayment/service.d.ts +24 -0
  104. package/lib/components/eftposPay/aggregatePayment/service.js +81 -0
  105. package/lib/components/eftposPay/aggregatePayment/types.d.ts +96 -0
  106. package/lib/components/eftposPay/aggregatePayment/types.js +74 -0
  107. package/lib/components/eftposPay/aggregatePayment/utils/logs.d.ts +110 -0
  108. package/lib/components/eftposPay/aggregatePayment/utils/logs.js +302 -0
  109. package/lib/components/eftposPay/aggregatePayment/utils/payment.d.ts +132 -0
  110. package/lib/components/eftposPay/aggregatePayment/utils/payment.js +746 -0
  111. package/lib/components/eftposPay/amount.d.ts +0 -1
  112. package/lib/components/eftposPay/const.d.ts +6 -1
  113. package/lib/components/eftposPay/const.js +2 -0
  114. package/lib/components/eftposPay/hooks.d.ts +2 -1
  115. package/lib/components/eftposPay/hooks.js +16 -0
  116. package/lib/components/eftposPay/linkly/index.js +1 -0
  117. package/lib/components/eftposPay/manufacturer.d.ts +1 -0
  118. package/lib/components/eftposPay/manufacturer.js +6 -0
  119. package/lib/components/eftposPay/mx51/Action.d.ts +6 -0
  120. package/lib/components/eftposPay/mx51/Action.js +127 -0
  121. package/lib/components/eftposPay/mx51/const.d.ts +5 -0
  122. package/lib/components/eftposPay/mx51/const.js +85 -0
  123. package/lib/components/eftposPay/mx51/index.d.ts +6 -0
  124. package/lib/components/eftposPay/mx51/index.js +330 -0
  125. package/lib/components/eftposPay/mx51/types.d.ts +136 -0
  126. package/lib/components/eftposPay/mx51/types.js +39 -0
  127. package/lib/components/eftposPay/mx51/utils.d.ts +10 -0
  128. package/lib/components/eftposPay/mx51/utils.js +114 -0
  129. package/lib/components/eftposPay/pay.js +4 -2
  130. package/lib/components/eftposPay/store/index.d.ts +1 -1
  131. package/lib/components/eventBooking/components/Provider/Content/index.d.ts +1 -0
  132. package/lib/components/eventBooking/components/Provider/EmptyHolderModal/index.d.ts +0 -1
  133. package/lib/components/eventBooking/components/Provider/Header/index.d.ts +1 -0
  134. package/lib/components/eventBooking/components/Provider/OrderProductModal/index.d.ts +0 -1
  135. package/lib/components/eventBooking/components/Provider/RemoveOptionConfirmModal.d.ts +0 -1
  136. package/lib/components/eventBooking/components/Provider/SelectHolderModal.d.ts +1 -0
  137. package/lib/components/eventBooking/components/bookingDetailModal/components/Resource.d.ts +1 -0
  138. package/lib/components/eventBooking/components/bookingDetailModal/components/Schedule.d.ts +1 -0
  139. package/lib/components/eventBooking/components/scheduleCalendar/components/ScheduleTimeItem/index.d.ts +0 -1
  140. package/lib/components/pay/toC/WalletPassBlock/components/WalletUseList/index.d.ts +0 -1
  141. package/lib/components/pisellSelectCustomerModal/RightPanel/List/index.d.ts +0 -1
  142. package/lib/components/shoppingCart/hooks/useAddService.d.ts +0 -1
  143. package/lib/components/shoppingCart/hooks/useClearCart.d.ts +0 -1
  144. package/lib/plus/saasRegister/components/VertifyEmail.d.ts +0 -1
  145. package/lib/plus/skuOptionsSelection/components/OptionsCard/index.d.ts +0 -1
  146. package/lib/plus/skuOptionsSelection/components/TitleExtra/index.d.ts +0 -1
  147. package/lib/plus/skuOptionsSelection/components/VariantCard/index.d.ts +0 -1
  148. package/lib/plus/walletPassGallery/components/passList/index.d.ts +0 -1
  149. package/lowcode/eco-cup-list/meta.ts +63 -0
  150. package/lowcode/eco-customer-list/meta.ts +63 -0
  151. package/package.json +1 -1
@@ -0,0 +1,746 @@
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/aggregatePayment/utils/payment.ts
30
+ var payment_exports = {};
31
+ __export(payment_exports, {
32
+ default: () => payment_default
33
+ });
34
+ module.exports = __toCommonJS(payment_exports);
35
+ var import_const = require("../../const");
36
+ var import_logs = __toESM(require("./logs"));
37
+ var import_service = require("../service");
38
+ var import_helper = require("../../helper");
39
+ var import_types = require("../types");
40
+ var PaymentMethod = class {
41
+ /** 初始化参数 */
42
+ initOptions;
43
+ // 交易号
44
+ paymentNum;
45
+ // 订单ID
46
+ orderId;
47
+ // 设备ID
48
+ deviceId;
49
+ // 统一回调函数
50
+ callback;
51
+ // 检查是否应该继续处理结果
52
+ shouldContinue;
53
+ // 配置
54
+ config = {};
55
+ // 主请求的 AbortController(支付/退款等)
56
+ controller = null;
57
+ // 查询请求的 AbortController
58
+ queryController = null;
59
+ // 开始轮询的定时器
60
+ queryStartTimer = null;
61
+ // 全局超时定时器
62
+ globalTimeoutTimer = null;
63
+ // 单次请求超时定时器
64
+ requestTimeoutTimer = null;
65
+ // 轮询间隔定时器
66
+ queryIntervalTimer = null;
67
+ // 是否已经完成(成功或失败)
68
+ isFinished = false;
69
+ // 是否正在轮询中
70
+ isQuerying = false;
71
+ // 当前操作类型
72
+ currentActionType = null;
73
+ // 当前查询的唯一ID(时间戳),用于防止过期响应被处理
74
+ currentQueryId = "";
75
+ // 当前执行的唯一ID(时间戳),用于防止旧的请求响应被处理
76
+ currentRunId = "";
77
+ // 当前查询API
78
+ currentQueryApi = null;
79
+ constructor(options) {
80
+ this.initOptions = options;
81
+ this.paymentNum = options.paymentNum;
82
+ this.orderId = options.orderId;
83
+ this.deviceId = options.deviceId;
84
+ this.callback = options.callback;
85
+ this.shouldContinue = options.shouldContinue || (() => true);
86
+ this.config = options.config || {};
87
+ import_logs.default.init(this.paymentNum, {
88
+ orderId: this.orderId,
89
+ deviceId: this.deviceId,
90
+ paymentCode: (options == null ? void 0 : options.paymentCode) || ""
91
+ });
92
+ }
93
+ /**
94
+ * 判断请求是否需要等待轮询结果
95
+ * 1. 有明确错误code且不是超时和支付超时,则直接失败
96
+ * @param code 错误码
97
+ */
98
+ isRequestFailed(code) {
99
+ return code && `${code}` !== import_const.PayStatus.Timeout && `${code}` !== import_const.PayStatus.PayTimeout;
100
+ }
101
+ /**
102
+ * 清理定时器和请求控制器
103
+ */
104
+ cleanupTimersAndControllers() {
105
+ if (this.controller) {
106
+ this.controller.abort();
107
+ this.controller = null;
108
+ }
109
+ if (this.queryController) {
110
+ this.queryController.abort();
111
+ this.queryController = null;
112
+ }
113
+ if (this.queryStartTimer) {
114
+ clearTimeout(this.queryStartTimer);
115
+ this.queryStartTimer = null;
116
+ }
117
+ if (this.globalTimeoutTimer) {
118
+ clearTimeout(this.globalTimeoutTimer);
119
+ this.globalTimeoutTimer = null;
120
+ }
121
+ if (this.requestTimeoutTimer) {
122
+ clearTimeout(this.requestTimeoutTimer);
123
+ this.requestTimeoutTimer = null;
124
+ }
125
+ if (this.queryIntervalTimer) {
126
+ clearTimeout(this.queryIntervalTimer);
127
+ this.queryIntervalTimer = null;
128
+ }
129
+ }
130
+ /**
131
+ * 清理资源并重置状态
132
+ * @param markAsFinished 是否标记为已完成(true: 操作完成; false: 准备新操作)
133
+ */
134
+ clean(markAsFinished = false) {
135
+ console.log("🧹 清理资源", { markAsFinished });
136
+ this.cleanupTimersAndControllers();
137
+ this.isQuerying = false;
138
+ this.isFinished = markAsFinished;
139
+ this.currentQueryApi = null;
140
+ this.currentActionType = null;
141
+ }
142
+ /**
143
+ * 开始新的操作流程(统一的流程初始化)
144
+ * @param actionType 操作类型
145
+ * @returns 本次流程的唯一ID
146
+ */
147
+ startNewOperation(actionType) {
148
+ const runId = (0, import_helper.getUuid)();
149
+ this.currentRunId = runId;
150
+ import_logs.default.addLog({
151
+ title: `触发新的操作:${actionType}`,
152
+ content: { actionType, runId }
153
+ });
154
+ this.clean(false);
155
+ this.currentActionType = actionType;
156
+ return runId;
157
+ }
158
+ /**
159
+ * 处理操作过程
160
+ */
161
+ handleOperationProcess(res) {
162
+ if (!this.currentActionType) {
163
+ return;
164
+ }
165
+ const actionType = this.currentActionType;
166
+ try {
167
+ this.callback(this, {
168
+ status: import_types.EPaymentStatus.Processing,
169
+ actionType,
170
+ data: res
171
+ });
172
+ } catch (error) {
173
+ console.error("⚠️ 回调执行出错:", error);
174
+ import_logs.default.addLog({ title: "回调执行出错", content: error });
175
+ }
176
+ }
177
+ /**
178
+ * 处理成功结果
179
+ */
180
+ handleOperationSuccess(res) {
181
+ if (this.isFinished || !this.shouldContinue() || !this.currentActionType) {
182
+ import_logs.default.addLog({
183
+ title: "操作结果:已完成或不应继续处理,忽略操作成功结果",
184
+ content: { actionType: this.currentActionType, res }
185
+ });
186
+ return;
187
+ }
188
+ const actionType = this.currentActionType;
189
+ import_logs.default.addLog({
190
+ title: "操作结果:成功",
191
+ content: { actionType, res }
192
+ });
193
+ this.clean(true);
194
+ try {
195
+ this.callback(this, {
196
+ status: import_types.EPaymentStatus.Success,
197
+ actionType,
198
+ data: res
199
+ });
200
+ } catch (error) {
201
+ console.error("⚠️ 回调执行出错:", error);
202
+ import_logs.default.addLog({ title: "回调执行出错", content: error });
203
+ }
204
+ }
205
+ /**
206
+ * 处理错误(最终失败)
207
+ * @param error 错误信息
208
+ */
209
+ handleOperationError(error) {
210
+ if (this.isFinished || !this.shouldContinue() || !this.currentActionType) {
211
+ console.log(`⚠️ 已完成或不应继续处理,忽略操作错误`);
212
+ return;
213
+ }
214
+ const actionType = this.currentActionType;
215
+ import_logs.default.addLog({
216
+ title: "操作结果:失败",
217
+ content: { actionType, error }
218
+ });
219
+ this.clean(true);
220
+ try {
221
+ this.callback(this, {
222
+ status: import_types.EPaymentStatus.Failed,
223
+ actionType,
224
+ data: error
225
+ });
226
+ } catch (err) {
227
+ console.error("⚠️ 回调执行出错:", err);
228
+ import_logs.default.addLog({ title: "回调执行出错", content: err });
229
+ }
230
+ }
231
+ /**
232
+ * 处理接口响应
233
+ */
234
+ handleResponse(res) {
235
+ var _a;
236
+ if (!this.currentActionType) {
237
+ return;
238
+ }
239
+ let needContinue = true;
240
+ const { external_unified_status } = ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.external_unified_response) || {};
241
+ switch (external_unified_status) {
242
+ case import_types.EPaymentStatus.Success:
243
+ this.handleOperationSuccess(res);
244
+ needContinue = false;
245
+ break;
246
+ case import_types.EPaymentStatus.Failed:
247
+ this.handleOperationError(res);
248
+ needContinue = false;
249
+ break;
250
+ case import_types.EPaymentStatus.Processing:
251
+ default:
252
+ this.handleOperationProcess(res);
253
+ needContinue = true;
254
+ break;
255
+ }
256
+ return needContinue;
257
+ }
258
+ /**
259
+ * 创建超时 Promise
260
+ */
261
+ createTimeoutPromise(timeoutMs) {
262
+ return new Promise((_, reject) => {
263
+ this.requestTimeoutTimer = setTimeout(() => {
264
+ console.log(`⏱️ 单次查询超时(${timeoutMs / 1e3}秒),强制终止`);
265
+ if (this.queryController) {
266
+ this.queryController.abort();
267
+ }
268
+ reject(new Error("REQUEST_TIMEOUT"));
269
+ }, timeoutMs);
270
+ });
271
+ }
272
+ /**
273
+ * 单次查询请求
274
+ */
275
+ async performQuery(actionType) {
276
+ var _a, _b;
277
+ if (this.isFinished || !this.shouldContinue()) {
278
+ import_logs.default.addLog({
279
+ title: "查询前置校验:已完成或不应继续处理,取消查询"
280
+ });
281
+ return;
282
+ }
283
+ if (!this.currentQueryApi) {
284
+ import_logs.default.addLog({ title: "查询API未设置,取消查询" });
285
+ return;
286
+ }
287
+ if (this.queryController) {
288
+ this.queryController.abort();
289
+ this.queryController = null;
290
+ }
291
+ if (this.requestTimeoutTimer) {
292
+ clearTimeout(this.requestTimeoutTimer);
293
+ this.requestTimeoutTimer = null;
294
+ }
295
+ const queryId = (0, import_helper.getUuid)();
296
+ this.currentQueryId = queryId;
297
+ this.queryController = new AbortController();
298
+ const { signal } = this.queryController;
299
+ import_logs.default.addLog({ title: "查询轮询:开始单次查询" });
300
+ try {
301
+ const res = await Promise.race([
302
+ this.currentQueryApi(
303
+ {
304
+ order_id: this.orderId,
305
+ unique_payment_number: this.paymentNum,
306
+ payment_code: (_a = this.initOptions) == null ? void 0 : _a.paymentCode,
307
+ request_version: queryId,
308
+ is_outer_response_info: 1
309
+ },
310
+ { signal }
311
+ ),
312
+ this.createTimeoutPromise(import_types.REQUEST_TIMEOUT)
313
+ ]);
314
+ import_logs.default.addLog({
315
+ title: "查询轮询:单次查询返回",
316
+ content: { actionType, res }
317
+ });
318
+ if (this.requestTimeoutTimer) {
319
+ clearTimeout(this.requestTimeoutTimer);
320
+ this.requestTimeoutTimer = null;
321
+ }
322
+ if (((_b = res == null ? void 0 : res.data) == null ? void 0 : _b.request_version) !== this.currentQueryId) {
323
+ import_logs.default.addLog({ title: "查询轮询结果:过期的查询响应,忽略" });
324
+ return;
325
+ }
326
+ if (this.isFinished || !this.shouldContinue()) {
327
+ import_logs.default.addLog({ title: "查询轮询结果:已完成或不应继续处理" });
328
+ return;
329
+ }
330
+ if (res && `${res.code}` === "200") {
331
+ import_logs.default.addLog({ title: "查询轮询结果:查询成功" });
332
+ const needContinue = this.handleResponse(res);
333
+ if (needContinue) {
334
+ this.scheduleNextQuery(actionType);
335
+ }
336
+ return;
337
+ }
338
+ if (this.isRequestFailed(res == null ? void 0 : res.code)) {
339
+ import_logs.default.addLog({
340
+ title: "查询轮询结果:有明确错误code,停止轮询",
341
+ content: res
342
+ });
343
+ this.handleOperationError(res);
344
+ } else {
345
+ import_logs.default.addLog({
346
+ title: "查询轮询结果:查询返回失败但没有明确code或超时code,继续轮询",
347
+ content: res
348
+ });
349
+ this.scheduleNextQuery(actionType);
350
+ }
351
+ } catch (error) {
352
+ if (this.requestTimeoutTimer) {
353
+ clearTimeout(this.requestTimeoutTimer);
354
+ this.requestTimeoutTimer = null;
355
+ }
356
+ if (queryId !== this.currentQueryId) {
357
+ import_logs.default.addLog({
358
+ title: "查询轮询结果:error-过期的查询异常,忽略"
359
+ });
360
+ return;
361
+ }
362
+ if (this.isFinished || !this.shouldContinue()) {
363
+ return;
364
+ }
365
+ if ((error == null ? void 0 : error.name) === "AbortError" || (error == null ? void 0 : error.message) === "REQUEST_TIMEOUT") {
366
+ import_logs.default.addLog({
367
+ title: "查询轮询结果:error-请求被取消或超时,继续轮询"
368
+ });
369
+ this.scheduleNextQuery(actionType);
370
+ return;
371
+ }
372
+ if (this.isRequestFailed(error == null ? void 0 : error.code)) {
373
+ import_logs.default.addLog({
374
+ title: "查询轮询结果:error-有明确错误code,停止轮询",
375
+ content: error
376
+ });
377
+ this.handleOperationError(error);
378
+ } else {
379
+ import_logs.default.addLog({
380
+ title: "查询轮询结果:error-无明确code或者code不是超时,继续轮询",
381
+ content: error
382
+ });
383
+ this.scheduleNextQuery(actionType);
384
+ }
385
+ }
386
+ }
387
+ /**
388
+ * 安排下一次查询
389
+ */
390
+ scheduleNextQuery(actionType) {
391
+ var _a;
392
+ if (this.isFinished || !this.shouldContinue()) {
393
+ return;
394
+ }
395
+ if (this.queryIntervalTimer) {
396
+ clearTimeout(this.queryIntervalTimer);
397
+ }
398
+ if (((_a = this.config) == null ? void 0 : _a.hasQueryInterval) === false) {
399
+ import_logs.default.addLog({
400
+ title: "查询轮询:立即安排下一次查询",
401
+ content: { actionType }
402
+ });
403
+ this.performQuery(actionType);
404
+ } else {
405
+ this.queryIntervalTimer = setTimeout(() => {
406
+ import_logs.default.addLog({
407
+ title: "查询轮询:安排下一次查询",
408
+ content: { actionType }
409
+ });
410
+ this.performQuery(actionType);
411
+ }, import_types.QUERY_INTERVAL);
412
+ }
413
+ }
414
+ /**
415
+ * 开始轮询
416
+ */
417
+ startQuery(actionType) {
418
+ if (this.isFinished || !this.shouldContinue() || this.isQuerying) {
419
+ return;
420
+ }
421
+ this.isQuerying = true;
422
+ import_logs.default.addLog({ title: "开始轮询", content: { actionType } });
423
+ this.globalTimeoutTimer = setTimeout(() => {
424
+ if (this.isFinished) {
425
+ return;
426
+ }
427
+ import_logs.default.addLog({
428
+ title: "轮询全局超时(2分钟),终止所有请求",
429
+ content: { actionType }
430
+ });
431
+ this.handleOperationError({
432
+ code: import_const.PayStatus.Timeout,
433
+ message: "交易超时"
434
+ });
435
+ }, import_types.GLOBAL_TIMEOUT);
436
+ this.performQuery(actionType);
437
+ }
438
+ /**
439
+ * 获取操作API和查询API
440
+ */
441
+ getActionApi(actionType) {
442
+ let actionApi = null;
443
+ let queryApi = null;
444
+ switch (actionType) {
445
+ case import_types.ActionType.Pay:
446
+ actionApi = import_service.AGPTPayApi;
447
+ queryApi = import_service.AGPTQueryApi;
448
+ break;
449
+ case import_types.ActionType.PayAction:
450
+ actionApi = import_service.AGPTActionApi;
451
+ queryApi = import_service.AGPTQueryApi;
452
+ break;
453
+ case import_types.ActionType.PayQuery:
454
+ queryApi = import_service.AGPTQueryApi;
455
+ break;
456
+ case import_types.ActionType.Refund:
457
+ actionApi = import_service.AGPTRefundApi;
458
+ queryApi = import_service.AGPTRefundQueryApi;
459
+ break;
460
+ case import_types.ActionType.RefundAction:
461
+ actionApi = import_service.AGPTRefundActionApi;
462
+ queryApi = import_service.AGPTRefundQueryApi;
463
+ break;
464
+ case import_types.ActionType.RefundQuery:
465
+ queryApi = import_service.AGPTRefundQueryApi;
466
+ break;
467
+ }
468
+ return { actionApi, queryApi };
469
+ }
470
+ /**
471
+ * 执行纯查询操作(不需要先调用支付/退款接口)
472
+ */
473
+ async runQuery(options) {
474
+ const { actionType } = options;
475
+ this.startNewOperation(actionType);
476
+ const { queryApi } = this.getActionApi(actionType);
477
+ if (!queryApi) {
478
+ const error = new Error(`${actionType}查询接口不存在`);
479
+ this.handleOperationError(error);
480
+ return;
481
+ }
482
+ this.currentQueryApi = queryApi;
483
+ import_logs.default.addLog({ title: `开始${actionType}查询轮询` });
484
+ this.startQuery(actionType);
485
+ }
486
+ /**
487
+ * 执行操作的核心方法
488
+ */
489
+ async run(runOptions) {
490
+ var _a;
491
+ const { actionType, params } = runOptions;
492
+ const runId = this.startNewOperation(actionType);
493
+ import_logs.default.addLog({
494
+ title: "请求参数",
495
+ content: { params }
496
+ });
497
+ const { actionApi, queryApi } = this.getActionApi(actionType);
498
+ if (!actionApi) {
499
+ const error = new Error(`${actionType}接口不存在`);
500
+ this.handleOperationError(error);
501
+ return;
502
+ }
503
+ this.currentQueryApi = queryApi;
504
+ if (queryApi !== null) {
505
+ this.queryStartTimer = setTimeout(() => {
506
+ import_logs.default.addLog({
507
+ title: "操作后10秒开始轮询",
508
+ content: { actionType }
509
+ });
510
+ this.startQuery(actionType);
511
+ }, import_types.QUERY_START_DELAY);
512
+ }
513
+ this.controller = new AbortController();
514
+ const { signal } = this.controller;
515
+ try {
516
+ import_logs.default.addLog({
517
+ title: `发起${actionType}请求`,
518
+ content: { actionType, params }
519
+ });
520
+ const res = await actionApi(
521
+ { ...params, request_version: runId, is_outer_response_info: 1 },
522
+ { signal }
523
+ );
524
+ import_logs.default.addLog({
525
+ title: "请求返回",
526
+ content: { params, actionType, res }
527
+ });
528
+ if (runId != ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.request_version)) {
529
+ import_logs.default.addLog({ title: "响应过期,忽略", content: { actionType } });
530
+ return;
531
+ }
532
+ if (this.isFinished || !this.shouldContinue()) {
533
+ import_logs.default.addLog({
534
+ title: "返回时已完成或不应继续处理",
535
+ content: { actionType }
536
+ });
537
+ return;
538
+ }
539
+ if (res && `${res.code}` === "200") {
540
+ import_logs.default.addLog({
541
+ title: `${actionType}接口成功`,
542
+ content: { actionType, res }
543
+ });
544
+ const needContinue = this.handleResponse(res);
545
+ if (needContinue) {
546
+ import_logs.default.addLog({
547
+ title: `${actionType}接口返回processing,开始轮询`
548
+ });
549
+ if (this.queryStartTimer) {
550
+ clearTimeout(this.queryStartTimer);
551
+ this.queryStartTimer = null;
552
+ }
553
+ this.startQuery(actionType);
554
+ }
555
+ return;
556
+ }
557
+ if (this.isRequestFailed(res == null ? void 0 : res.code)) {
558
+ import_logs.default.addLog({
559
+ title: `${actionType}接口返回失败`,
560
+ content: { actionType, res }
561
+ });
562
+ this.handleOperationError(res);
563
+ } else {
564
+ import_logs.default.addLog({
565
+ title: `${actionType}超时或无明确错误,等待轮询结果`,
566
+ content: { actionType, res }
567
+ });
568
+ if (this.queryStartTimer) {
569
+ clearTimeout(this.queryStartTimer);
570
+ this.queryStartTimer = null;
571
+ }
572
+ this.startQuery(actionType);
573
+ }
574
+ } catch (error) {
575
+ if (runId !== this.currentRunId) {
576
+ import_logs.default.addLog({ title: "响应过期,忽略", content: { actionType } });
577
+ return;
578
+ }
579
+ if (this.isFinished || !this.shouldContinue()) {
580
+ import_logs.default.addLog({
581
+ title: "异常时已完成或不应继续处理",
582
+ content: { actionType }
583
+ });
584
+ return;
585
+ }
586
+ if (this.isRequestFailed(error == null ? void 0 : error.code)) {
587
+ import_logs.default.addLog({
588
+ title: `${actionType}接口异常`,
589
+ content: { actionType, error }
590
+ });
591
+ this.handleOperationError(error);
592
+ } else {
593
+ import_logs.default.addLog({
594
+ title: `${actionType}超时或无明确错误,等待轮询结果`,
595
+ content: { actionType, error }
596
+ });
597
+ }
598
+ }
599
+ }
600
+ /**
601
+ * 执行操作
602
+ */
603
+ async runAction(actionOptions) {
604
+ var _a;
605
+ const { actionType, params } = actionOptions;
606
+ const runActionId = this.startNewOperation(actionType);
607
+ import_logs.default.addLog({
608
+ title: "请求参数",
609
+ content: { params }
610
+ });
611
+ const { actionApi, queryApi } = this.getActionApi(actionType);
612
+ if (!actionApi) {
613
+ const error = new Error(`${actionType}操作接口不存在`);
614
+ this.handleOperationError(error);
615
+ return;
616
+ }
617
+ this.currentQueryApi = queryApi;
618
+ this.controller = new AbortController();
619
+ const { signal } = this.controller;
620
+ try {
621
+ const res = await actionApi(
622
+ {
623
+ ...params || {},
624
+ request_version: runActionId,
625
+ is_outer_response_info: 1
626
+ },
627
+ { signal }
628
+ );
629
+ if (this.isFinished || !this.shouldContinue()) {
630
+ import_logs.default.addLog({
631
+ title: "Action返回时已完成或不应继续处理,忽略",
632
+ content: { actionType }
633
+ });
634
+ return;
635
+ }
636
+ if (runActionId !== ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.request_version)) {
637
+ import_logs.default.addLog({
638
+ title: "Action响应过期,忽略",
639
+ content: { actionType }
640
+ });
641
+ return;
642
+ }
643
+ import_logs.default.addLog({
644
+ title: "Action请求返回,开始轮询",
645
+ content: { actionType }
646
+ });
647
+ this.startQuery(actionType);
648
+ } catch (error) {
649
+ if (this.isFinished || !this.shouldContinue()) {
650
+ import_logs.default.addLog({
651
+ title: "Action异常时已完成或不应继续处理,忽略",
652
+ content: { actionType }
653
+ });
654
+ return;
655
+ }
656
+ if (runActionId !== this.currentRunId) {
657
+ import_logs.default.addLog({
658
+ title: "Action响应过期,忽略",
659
+ content: { actionType }
660
+ });
661
+ return;
662
+ }
663
+ import_logs.default.addLog({
664
+ title: "Action请求异常,开始轮询",
665
+ content: { actionType, error }
666
+ });
667
+ this.startQuery(actionType);
668
+ }
669
+ }
670
+ /**
671
+ * 支付
672
+ * @param params 支付参数
673
+ */
674
+ pay(params) {
675
+ this.run({
676
+ actionType: import_types.ActionType.Pay,
677
+ params
678
+ });
679
+ }
680
+ /**
681
+ * 支付取消
682
+ * @param params 取消参数
683
+ */
684
+ payAction(params) {
685
+ this.runAction({
686
+ actionType: import_types.ActionType.PayAction,
687
+ params
688
+ });
689
+ }
690
+ /**
691
+ * 退款
692
+ * @param params 退款参数
693
+ */
694
+ refund(params) {
695
+ this.run({
696
+ actionType: import_types.ActionType.Refund,
697
+ params
698
+ });
699
+ }
700
+ /**
701
+ * 退款取消
702
+ * @param params 取消参数
703
+ */
704
+ refundAction(params) {
705
+ this.runAction({
706
+ actionType: import_types.ActionType.RefundAction,
707
+ params
708
+ });
709
+ }
710
+ /**
711
+ * 支付查询(直接查询,带2分钟超时和轮询机制)
712
+ */
713
+ payQuery() {
714
+ this.runQuery({
715
+ actionType: import_types.ActionType.PayQuery
716
+ });
717
+ }
718
+ /**
719
+ * 退款查询(直接查询,带2分钟超时和轮询机制)
720
+ */
721
+ refundQuery() {
722
+ this.runQuery({
723
+ actionType: import_types.ActionType.RefundQuery
724
+ });
725
+ }
726
+ /**
727
+ * 停止操作,后续依然可以重新发起操作
728
+ */
729
+ stop() {
730
+ import_logs.default.addLog({
731
+ title: "停止操作",
732
+ content: { actionType: this.currentActionType }
733
+ });
734
+ this.clean(true);
735
+ }
736
+ /**
737
+ * 销毁实例(完全清理并上传日志)
738
+ * 注意:销毁后实例不可再使用
739
+ */
740
+ destroy() {
741
+ import_logs.default.addLog({ title: "销毁实例,完成所有流程" });
742
+ this.clean(true);
743
+ import_logs.default.clearLogs();
744
+ }
745
+ };
746
+ var payment_default = PaymentMethod;