@pisell/private-materials 3.3.84 → 3.3.86

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 (135) 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/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +13 -13
  7. package/build/lowcode/render/default/view.js +11 -11
  8. package/build/lowcode/view.js +11 -11
  9. package/es/components/booking/addons/model.d.ts +10 -1
  10. package/es/components/booking/components/TabProduct/tabs/index.js +1 -5
  11. package/es/components/booking/components/browserSelect/index.js +1 -1
  12. package/es/components/booking/forms/model.d.ts +10 -1
  13. package/es/components/booking/forms/model.js +5 -5
  14. package/es/components/booking/forms/sendModal/useSendModal.d.ts +1 -1
  15. package/es/components/booking/info/model.d.ts +10 -1
  16. package/es/components/booking/info/service/like/index.js +1 -1
  17. package/es/components/booking/info/service2/utils.d.ts +1 -1
  18. package/es/components/booking/materiels/startTime/index.js +1 -1
  19. package/es/components/booking/model.d.ts +9 -1
  20. package/es/components/booking/notes/NoteBlock/NoteItem/index.js +1 -1
  21. package/es/components/booking/notes/NoteBlock/index.js +11 -11
  22. package/es/components/booking/notes/model.d.ts +10 -1
  23. package/es/components/booking/notes/model.js +5 -5
  24. package/es/components/booking/payments/model.d.ts +10 -1
  25. package/es/components/booking/payments/model.js +5 -5
  26. package/es/components/booking/utils.d.ts +2 -2
  27. package/es/components/eftposPay/const.d.ts +4 -1
  28. package/es/components/eftposPay/const.js +3 -1
  29. package/es/components/eftposPay/hooks.d.ts +1 -1
  30. package/es/components/eftposPay/hooks.js +3 -1
  31. package/es/components/eftposPay/index.js +1 -1
  32. package/es/components/eftposPay/linkly/const.d.ts +23 -0
  33. package/es/components/eftposPay/linkly/const.js +82 -0
  34. package/es/components/eftposPay/linkly/hooks/index.d.ts +2 -0
  35. package/es/components/eftposPay/linkly/hooks/index.js +2 -0
  36. package/es/components/eftposPay/linkly/hooks/normal.d.ts +30 -0
  37. package/es/components/eftposPay/linkly/hooks/normal.js +318 -0
  38. package/es/components/eftposPay/linkly/hooks/useTimeQuery.d.ts +4 -0
  39. package/es/components/eftposPay/linkly/hooks/useTimeQuery.js +273 -0
  40. package/es/components/eftposPay/linkly/index.d.ts +2 -0
  41. package/es/components/eftposPay/linkly/index.js +197 -0
  42. package/es/components/eftposPay/linkly/service.d.ts +32 -0
  43. package/es/components/eftposPay/linkly/service.js +73 -0
  44. package/es/components/eftposPay/manufacturer.d.ts +1 -0
  45. package/es/components/eftposPay/manufacturer.js +4 -0
  46. package/es/components/eftposPay/pay.d.ts +1 -1
  47. package/es/components/eftposPay/pay.js +6 -2
  48. package/es/components/eftposPay/store/index.d.ts +1 -1
  49. package/es/components/listComponent/index.js +5 -5
  50. package/es/components/pay/toC/model.d.ts +9 -1
  51. package/es/components/productExtension/card/index.js +3 -3
  52. package/es/components/productExtension/fields/Actor/CutOffTime/index.js +1 -1
  53. package/es/components/productExtension/fields/Forms/index.js +12 -12
  54. package/es/components/productExtension/fields/SelectProducts/ProductItemPreview/index.js +1 -1
  55. package/es/components/productExtension/fields/SelectProducts/server.js +2 -2
  56. package/es/components/productExtension/fields/SelectResourcesTable/server.js +2 -2
  57. package/es/components/productExtension/server.js +2 -2
  58. package/es/components/ruleSetting/ruleBorder/index.js +1 -1
  59. package/es/components/schedules/calendar/index.js +4 -4
  60. package/es/components/schedules/calendar/serve.js +2 -2
  61. package/es/components/schedules/components/CurrentDay/index.js +5 -5
  62. package/es/components/schedules/components/CurrentDay/serve.js +2 -2
  63. package/es/components/schedules/components/DropdownSort/index.js +1 -1
  64. package/es/components/schedules/components/ResourceList/index.js +1 -1
  65. package/es/components/schedules/components/Search/index.js +5 -5
  66. package/es/components/schedules/model.d.ts +9 -1
  67. package/es/components/schedules/model.js +5 -5
  68. package/es/components/schedules/openHours/index.js +1 -1
  69. package/es/components/schedules/openHours/serve.js +2 -2
  70. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/MaxParticipantsModule/index.js +1 -1
  71. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/ResourcesModule/index.js +5 -5
  72. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/SchedulesModule/index.js +4 -4
  73. package/es/components/schedules/products/ProductDetailDrawer/index.js +3 -3
  74. package/es/components/schedules/products/serve.js +2 -2
  75. package/es/components/schedules/products/utils.js +5 -5
  76. package/es/components/schedules/resources/detail/detailContent.js +2 -2
  77. package/es/components/schedules/resources/detail/index.js +10 -10
  78. package/es/components/schedules/resources/list/index.js +2 -2
  79. package/es/components/schedules/resources/relationProduct/index.js +1 -1
  80. package/es/components/schedules/resources/serve.js +2 -2
  81. package/es/components/schedules/schedules/ScheduleDetailDrawer/index.js +9 -9
  82. package/es/components/schedules/utils.d.ts +1 -1
  83. package/es/components/schedules/utils.js +4 -4
  84. package/es/components/selectModal/index.js +2 -2
  85. package/es/components/wallet/Detail/model.d.ts +13 -1
  86. package/es/components/wallet/DiscountCard/model.d.ts +14 -1
  87. package/es/components/wallet/PointCard/model.d.ts +13 -1
  88. package/es/components/wallet/RechargeableCard/model.d.ts +29 -1
  89. package/es/components/wallet/Voucher/model.d.ts +13 -1
  90. package/es/components/wallet/model.d.ts +9 -1
  91. package/es/hooks/useComponents.js +1 -1
  92. package/es/utils/index.d.ts +1 -1
  93. package/lib/components/booking/addons/model.d.ts +10 -1
  94. package/lib/components/booking/forms/model.d.ts +10 -1
  95. package/lib/components/booking/forms/sendModal/useSendModal.d.ts +1 -1
  96. package/lib/components/booking/info/model.d.ts +10 -1
  97. package/lib/components/booking/info/service2/utils.d.ts +1 -1
  98. package/lib/components/booking/model.d.ts +9 -1
  99. package/lib/components/booking/notes/model.d.ts +10 -1
  100. package/lib/components/booking/payments/model.d.ts +10 -1
  101. package/lib/components/booking/utils.d.ts +2 -2
  102. package/lib/components/eftposPay/const.d.ts +4 -1
  103. package/lib/components/eftposPay/const.js +2 -0
  104. package/lib/components/eftposPay/hooks.d.ts +1 -1
  105. package/lib/components/eftposPay/hooks.js +11 -4
  106. package/lib/components/eftposPay/index.js +1 -1
  107. package/lib/components/eftposPay/linkly/const.d.ts +23 -0
  108. package/lib/components/eftposPay/linkly/const.js +102 -0
  109. package/lib/components/eftposPay/linkly/hooks/index.d.ts +2 -0
  110. package/lib/components/eftposPay/linkly/hooks/index.js +25 -0
  111. package/lib/components/eftposPay/linkly/hooks/normal.d.ts +30 -0
  112. package/lib/components/eftposPay/linkly/hooks/normal.js +239 -0
  113. package/lib/components/eftposPay/linkly/hooks/useTimeQuery.d.ts +4 -0
  114. package/lib/components/eftposPay/linkly/hooks/useTimeQuery.js +222 -0
  115. package/lib/components/eftposPay/linkly/index.d.ts +2 -0
  116. package/lib/components/eftposPay/linkly/index.js +208 -0
  117. package/lib/components/eftposPay/linkly/service.d.ts +32 -0
  118. package/lib/components/eftposPay/linkly/service.js +55 -0
  119. package/lib/components/eftposPay/manufacturer.d.ts +1 -0
  120. package/lib/components/eftposPay/manufacturer.js +6 -0
  121. package/lib/components/eftposPay/pay.d.ts +1 -1
  122. package/lib/components/eftposPay/pay.js +13 -2
  123. package/lib/components/eftposPay/store/index.d.ts +1 -1
  124. package/lib/components/pay/toC/model.d.ts +9 -1
  125. package/lib/components/schedules/model.d.ts +9 -1
  126. package/lib/components/schedules/utils.d.ts +1 -1
  127. package/lib/components/schedules/utils.js +1 -1
  128. package/lib/components/wallet/Detail/model.d.ts +13 -1
  129. package/lib/components/wallet/DiscountCard/model.d.ts +14 -1
  130. package/lib/components/wallet/PointCard/model.d.ts +13 -1
  131. package/lib/components/wallet/RechargeableCard/model.d.ts +29 -1
  132. package/lib/components/wallet/Voucher/model.d.ts +13 -1
  133. package/lib/components/wallet/model.d.ts +9 -1
  134. package/lib/utils/index.d.ts +1 -1
  135. package/package.json +4 -4
@@ -0,0 +1,318 @@
1
+ import { useRequest } from 'ahooks';
2
+ import { useEffect, useRef } from 'react';
3
+ import { locales, sendWarningLog } from '@pisell/utils';
4
+ import { linklyPayCancelApi, linklyPayApi, linklyRefundCancelApi, linklyRefundApi, linklyPaySignatureApi, linklyRefundSignatureApi } from "../service";
5
+ import { useFail, useStoreRef } from "../../hooks";
6
+ import { ModeEnum, PayStatus, StatusEnum } from "../../const";
7
+ import { useDispatch, updateState, updateCustom, updateStatus } from "../../store";
8
+ import { LinklyActionStatus } from "../const";
9
+
10
+ /**
11
+ * 支付或退款
12
+ * @param failAction 失败回调
13
+ */
14
+ export var useLinklyPayOrRefund = function useLinklyPayOrRefund(handleCheck) {
15
+ var dispatch = useDispatch();
16
+ var _useStoreRef = useStoreRef(),
17
+ numRef = _useStoreRef.numRef,
18
+ modeRef = _useStoreRef.modeRef,
19
+ orderIdRef = _useStoreRef.orderIdRef,
20
+ deviceRef = _useStoreRef.deviceRef,
21
+ payRef = _useStoreRef.payRef,
22
+ amountRef = _useStoreRef.amountRef;
23
+ var fail = useFail(0);
24
+ var failRef = useRef(fail);
25
+ var resultQueryRef = useRef(null);
26
+ var handleLinklySuccessRef = useRef(null);
27
+ useEffect(function () {
28
+ failRef.current = fail;
29
+ }, [fail]);
30
+ var isPay = modeRef.current === ModeEnum.Pay || modeRef.current === ModeEnum.FullPay;
31
+ var _pay = useRequest(isPay ? linklyPayApi : linklyRefundApi, {
32
+ manual: true,
33
+ onSuccess: function onSuccess(res) {
34
+ _onSuccess(res);
35
+ },
36
+ onError: function onError(error) {
37
+ _onError(error);
38
+
39
+ // TODO: mock数据
40
+ // console.log('mock>>>>>>');
41
+ // const res = {
42
+ // status: true,
43
+ // code: 200,
44
+ // message: '',
45
+ // data: {
46
+ // pinpad_id: 3,
47
+ // is_auto_print: 0,
48
+ // session_id: '923d4abe-6521-43c8-915b-decde8b406bd',
49
+ // status: 0,
50
+ // response_code: '00',
51
+ // response_text: 'APPROVED',
52
+ // signature_flag: 0,
53
+ // },
54
+ // };
55
+ // onSuccess(res, isPay ? 'pay' : 'refund');
56
+ }
57
+ });
58
+ var _onSuccess = function _onSuccess(res) {
59
+ var _res$data;
60
+ console.log("linkly".concat(isPay ? 'Pay' : 'Refund', "Success---->>>>>>>"), res);
61
+ if (!handleCheck()) {
62
+ return;
63
+ }
64
+ sendWarningLog({
65
+ title: "Linkly-".concat(isPay ? 'Pay' : 'Refund', "-\u63A5\u53E3\u6210\u529F"),
66
+ content: [{
67
+ key: 'response',
68
+ value: JSON.stringify(res)
69
+ }]
70
+ });
71
+
72
+ // status 交易状态 0:未知,继续查询 1:成功 -1:失败 -2:交易错误
73
+ // signature_flag 是否弹框确认签名 0:不用签名 1:等待签名确认 2:签名取消 3:签名确认
74
+ var status = res === null || res === void 0 || (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.status;
75
+
76
+ // 继续查询交易状态
77
+ if (status === 0) {
78
+ var _res$data2, _resultQueryRef$curre;
79
+ // 交易流水号
80
+ numRef.current = res === null || res === void 0 || (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.session_id;
81
+ dispatch(updateState({
82
+ number: numRef.current
83
+ }));
84
+ // 需要展示取消按钮
85
+ dispatch(updateCustom({
86
+ actionStatus: LinklyActionStatus.Cancel
87
+ }));
88
+ // 调用支付查询接口
89
+ (_resultQueryRef$curre = resultQueryRef.current) === null || _resultQueryRef$curre === void 0 || _resultQueryRef$curre.call(resultQueryRef);
90
+ return;
91
+ }
92
+
93
+ // 无需展示取消按钮
94
+ dispatch(updateCustom({
95
+ actionStatus: LinklyActionStatus.Empty
96
+ }));
97
+
98
+ // 交易成功
99
+ if (status === 1) {
100
+ var _handleLinklySuccessR;
101
+ (_handleLinklySuccessR = handleLinklySuccessRef.current) === null || _handleLinklySuccessR === void 0 || _handleLinklySuccessR.call(handleLinklySuccessRef, res);
102
+ return;
103
+ }
104
+
105
+ // 交易失败
106
+ if (status < 0) {
107
+ var _failRef$current;
108
+ // 需要特殊处理,将code码转换为支付失败code码
109
+ res.code = PayStatus.Unknown;
110
+ (_failRef$current = failRef.current) === null || _failRef$current === void 0 || _failRef$current.call(failRef, res, false);
111
+ }
112
+ };
113
+ var _onError = function _onError(error) {
114
+ var _failRef$current2;
115
+ console.log("linkly".concat(isPay ? 'Pay' : 'Refund', "Error---->>>>>>>"), error);
116
+ // 无网 或 已卸载 则不进行处理
117
+ if (!handleCheck()) {
118
+ return;
119
+ }
120
+ sendWarningLog({
121
+ title: "Linkly-".concat(isPay ? 'Pay' : 'Refund', "-\u63A5\u53E3\u5931\u8D25"),
122
+ content: [{
123
+ key: 'error',
124
+ value: JSON.stringify(error)
125
+ }]
126
+ });
127
+ (_failRef$current2 = failRef.current) === null || _failRef$current2 === void 0 || _failRef$current2.call(failRef, error, false);
128
+ };
129
+ var payOrRefund = function payOrRefund(resultQuery, handleLinklySuccess) {
130
+ var _deviceRef$current, _payRef$current;
131
+ handleLinklySuccessRef.current = handleLinklySuccess;
132
+ resultQueryRef.current = resultQuery;
133
+ var param = {
134
+ // 订单id
135
+ order_id: orderIdRef.current,
136
+ // 设备id
137
+ pinpad_id: deviceRef === null || deviceRef === void 0 || (_deviceRef$current = deviceRef.current) === null || _deviceRef$current === void 0 || (_deviceRef$current = _deviceRef$current.metadata) === null || _deviceRef$current === void 0 ? void 0 : _deviceRef$current.linkly_pinpad_id,
138
+ // 交易金额, 包含选择的订单金额+手续费,订单金额+手续费=交易金额
139
+ amount: isPay ? (_payRef$current = payRef.current) === null || _payRef$current === void 0 ? void 0 : _payRef$current.total : amountRef.current
140
+ };
141
+ sendWarningLog({
142
+ title: "Linkly-".concat(isPay ? 'Pay' : 'Refund'),
143
+ content: [{
144
+ key: 'params',
145
+ value: JSON.stringify(param)
146
+ }]
147
+ });
148
+ _pay.run(param);
149
+ };
150
+ return {
151
+ action: {
152
+ pay: _pay
153
+ },
154
+ payOrRefund: payOrRefund
155
+ };
156
+ };
157
+
158
+ /**
159
+ * @title: 取消支付或退款
160
+ * @description: 取消支付或退款调用接口后不管成功还是失败都需要调用支付查询接口
161
+ */
162
+ export var useLinklyCancel = function useLinklyCancel(handleCheck) {
163
+ var dispatch = useDispatch();
164
+ var _useStoreRef2 = useStoreRef(),
165
+ numRef = _useStoreRef2.numRef,
166
+ modeRef = _useStoreRef2.modeRef,
167
+ deviceRef = _useStoreRef2.deviceRef;
168
+ var resultQueryRef = useRef(null);
169
+ var isPay = modeRef.current === ModeEnum.Pay || modeRef.current === ModeEnum.FullPay;
170
+ var cancelAction = function cancelAction(res, type) {
171
+ var _resultQueryRef$curre2;
172
+ // 需要将按钮状态释放
173
+ dispatch(updateCustom({
174
+ buttonDisabled: false
175
+ }));
176
+ if (!handleCheck()) {
177
+ return;
178
+ }
179
+ if (type === 'success') {
180
+ sendWarningLog({
181
+ title: "Linkly-".concat(isPay ? 'Pay' : 'Refund', "-\u53D6\u6D88\u6210\u529F"),
182
+ content: [{
183
+ key: 'response',
184
+ value: JSON.stringify(res)
185
+ }]
186
+ });
187
+ } else {
188
+ sendWarningLog({
189
+ title: "Linkly-".concat(isPay ? 'Pay' : 'Refund', "-\u53D6\u6D88\u5931\u8D25"),
190
+ content: [{
191
+ key: 'error',
192
+ value: JSON.stringify(res)
193
+ }]
194
+ });
195
+ }
196
+ (_resultQueryRef$curre2 = resultQueryRef.current) === null || _resultQueryRef$curre2 === void 0 || _resultQueryRef$curre2.call(resultQueryRef);
197
+ };
198
+ var _cancel = useRequest(isPay ? linklyPayCancelApi : linklyRefundCancelApi, {
199
+ manual: true,
200
+ onSuccess: function onSuccess(res) {
201
+ return cancelAction(res, 'success');
202
+ },
203
+ onError: function onError(error) {
204
+ return cancelAction(error, 'error');
205
+ }
206
+ });
207
+ var linklyCancel = function linklyCancel(resultQuery) {
208
+ var _deviceRef$current2;
209
+ resultQueryRef.current = resultQuery;
210
+ // 需要将按钮状态锁定,防止重复点击
211
+ dispatch(updateCustom({
212
+ buttonDisabled: true
213
+ }));
214
+ var param = {
215
+ // 设备id
216
+ pinpad_id: deviceRef === null || deviceRef === void 0 || (_deviceRef$current2 = deviceRef.current) === null || _deviceRef$current2 === void 0 || (_deviceRef$current2 = _deviceRef$current2.metadata) === null || _deviceRef$current2 === void 0 ? void 0 : _deviceRef$current2.linkly_pinpad_id,
217
+ // 交易流水号
218
+ session_id: numRef.current
219
+ };
220
+ sendWarningLog({
221
+ title: "Linkly-".concat(isPay ? 'Pay' : 'Refund', "-\u53D6\u6D88"),
222
+ content: [{
223
+ key: 'params',
224
+ value: JSON.stringify(param)
225
+ }]
226
+ });
227
+ _cancel.run(param);
228
+ dispatch(updateCustom({
229
+ actionStatus: LinklyActionStatus.CancelWaiting
230
+ }));
231
+ };
232
+ return {
233
+ action: {
234
+ cancel: _cancel
235
+ },
236
+ linklyCancel: linklyCancel
237
+ };
238
+ };
239
+
240
+ /**
241
+ * @title: 支付或退款签名
242
+ * @description: 支付或退款签名调用接口后不管成功还是失败都需要调用支付查询接口
243
+ */
244
+ export var useLinklySignature = function useLinklySignature(handleCheck) {
245
+ var dispatch = useDispatch();
246
+ var _useStoreRef3 = useStoreRef(),
247
+ numRef = _useStoreRef3.numRef,
248
+ modeRef = _useStoreRef3.modeRef,
249
+ deviceRef = _useStoreRef3.deviceRef;
250
+ var resultQueryRef = useRef(null);
251
+ var isPay = modeRef.current === ModeEnum.Pay || modeRef.current === ModeEnum.FullPay;
252
+ var signatureAction = function signatureAction(res, type) {
253
+ var _resultQueryRef$curre3;
254
+ console.log('signatureAction---->>>>>>>', res);
255
+ if (!handleCheck()) {
256
+ return;
257
+ }
258
+ if (type === 'success') {
259
+ sendWarningLog({
260
+ title: "Linkly-".concat(isPay ? 'Pay' : 'Refund', "-\u7B7E\u540D\u6210\u529F"),
261
+ content: [{
262
+ key: 'response',
263
+ value: JSON.stringify(res)
264
+ }]
265
+ });
266
+ } else {
267
+ sendWarningLog({
268
+ title: "Linkly-".concat(isPay ? 'Pay' : 'Refund', "-\u7B7E\u540D\u5931\u8D25"),
269
+ content: [{
270
+ key: 'error',
271
+ value: JSON.stringify(res)
272
+ }]
273
+ });
274
+ }
275
+ (_resultQueryRef$curre3 = resultQueryRef.current) === null || _resultQueryRef$curre3 === void 0 || _resultQueryRef$curre3.call(resultQueryRef);
276
+ };
277
+ var _signature = useRequest(isPay ? linklyPaySignatureApi : linklyRefundSignatureApi, {
278
+ manual: true,
279
+ onSuccess: function onSuccess(res) {
280
+ return signatureAction(res, 'success');
281
+ },
282
+ onError: function onError(error) {
283
+ return signatureAction(error, 'error');
284
+ }
285
+ });
286
+ var linklySignature = function linklySignature(status, resultQuery) {
287
+ var _deviceRef$current3;
288
+ resultQueryRef.current = resultQuery;
289
+ var param = {
290
+ // 设备id
291
+ pinpad_id: deviceRef === null || deviceRef === void 0 || (_deviceRef$current3 = deviceRef.current) === null || _deviceRef$current3 === void 0 || (_deviceRef$current3 = _deviceRef$current3.metadata) === null || _deviceRef$current3 === void 0 ? void 0 : _deviceRef$current3.linkly_pinpad_id,
292
+ // 交易流水号
293
+ session_id: numRef.current,
294
+ signature_flag: status
295
+ };
296
+ dispatch(updateStatus(StatusEnum.Loading));
297
+ dispatch(updateState({
298
+ title: locales.getText('page.eftpos-pay.text.loading')(modeRef.current)
299
+ }));
300
+ dispatch(updateCustom({
301
+ actionStatus: LinklyActionStatus.SignatureWaiting
302
+ }));
303
+ sendWarningLog({
304
+ title: "Linkly-".concat(isPay ? 'Pay' : 'Refund', "-\u7B7E\u540D"),
305
+ content: [{
306
+ key: 'params',
307
+ value: JSON.stringify(param)
308
+ }]
309
+ });
310
+ _signature.run(param);
311
+ };
312
+ return {
313
+ action: {
314
+ signature: _signature
315
+ },
316
+ linklySignature: linklySignature
317
+ };
318
+ };
@@ -0,0 +1,4 @@
1
+ export declare const useTimeResultQuery: (api: any, resultCheck: () => boolean, handleLinklySuccess: (res: any) => void) => {
2
+ run: () => Promise<void>;
3
+ stop: () => void;
4
+ };
@@ -0,0 +1,273 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
+ import { useRef } from 'react';
6
+ import { getUniqueId, locales, sendWarningLog } from '@pisell/utils';
7
+ import { useDispatch, updateCustom, updateStatus, updateState } from "../../store";
8
+ import { useFail, useStoreRef } from "../../hooks";
9
+ import { ModeEnum, PayStatus, StatusEnum } from "../../const";
10
+ import { LinklyActionStatus } from "../const";
11
+
12
+ // 全局超时时间
13
+ var GlobalTimeout = 1000 * 60;
14
+ // 单次请求超时时间
15
+ var RequestTimeout = 1000 * 5;
16
+ export var useTimeResultQuery = function useTimeResultQuery(api, resultCheck, handleLinklySuccess) {
17
+ var dispatch = useDispatch();
18
+ var _useStoreRef = useStoreRef(),
19
+ numRef = _useStoreRef.numRef,
20
+ modeRef = _useStoreRef.modeRef,
21
+ deviceRef = _useStoreRef.deviceRef;
22
+ var fail = useFail(0);
23
+ var failRef = useRef(fail);
24
+ var isPay = modeRef.current === ModeEnum.Pay || modeRef.current === ModeEnum.FullPay;
25
+ // 记录请求控制器
26
+ var controllerRef = useRef(null);
27
+ // 记录定时器ID
28
+ var requestTimeoutIdRef = useRef(null);
29
+ // 记录全局超时定时器ID
30
+ var globalTimeoutIdRef = useRef(null);
31
+ // 请求是否被取消
32
+ var isRequestCanceledRef = useRef(false);
33
+ // 请求开始时间
34
+ var startTimeRef = useRef(null);
35
+ // 查询是否结束
36
+ var isQueryFinishedRef = useRef(true);
37
+ // 每轮查询的唯一标识
38
+ var queryIdRef = useRef(null);
39
+ var _resultQuery = /*#__PURE__*/function () {
40
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
41
+ var _deviceRef$current;
42
+ var signal, requestApi, params, requestPromise;
43
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
44
+ while (1) switch (_context.prev = _context.next) {
45
+ case 0:
46
+ if (controllerRef.current) {
47
+ controllerRef.current.abort();
48
+ controllerRef.current = null;
49
+ }
50
+ if (requestTimeoutIdRef.current) {
51
+ clearTimeout(requestTimeoutIdRef.current);
52
+ requestTimeoutIdRef.current = null;
53
+ }
54
+ controllerRef.current = new AbortController();
55
+ signal = controllerRef.current.signal;
56
+ isRequestCanceledRef.current = false;
57
+
58
+ // 设置单次请求超时定时器
59
+ requestTimeoutIdRef.current = setTimeout(function () {
60
+ var _controllerRef$curren;
61
+ console.log('单次请求超时,将尝试重试');
62
+ _log("RequestTimeout");
63
+ (_controllerRef$curren = controllerRef.current) === null || _controllerRef$curren === void 0 || _controllerRef$curren.abort();
64
+ isRequestCanceledRef.current = true;
65
+ }, RequestTimeout);
66
+ requestApi = isPay ? api.linklyPayQuery : api.linklyRefundQuery;
67
+ params = {
68
+ // 设备id
69
+ pinpad_id: deviceRef === null || deviceRef === void 0 || (_deviceRef$current = deviceRef.current) === null || _deviceRef$current === void 0 || (_deviceRef$current = _deviceRef$current.metadata) === null || _deviceRef$current === void 0 ? void 0 : _deviceRef$current.linkly_pinpad_id,
70
+ // 交易流水号
71
+ session_id: numRef.current
72
+ };
73
+ requestPromise = requestApi(params, {
74
+ signal: signal
75
+ });
76
+ requestPromise.then(function (result) {
77
+ console.log('Success: 请求成功', result);
78
+ // status 交易状态 0:未知,继续查询 1:成功 -1:失败 -2:交易错误
79
+ // signature_flag 是否弹框确认签名 0:不用签名 1:等待签名确认 2:签名取消 3:签名确认
80
+ // 检查是否全局超时 或 是否需要处理结果
81
+ if (checkNeedToHandleResult()) {
82
+ console.log('Success: 全局超时或不需要处理结果,终止查询');
83
+ return;
84
+ }
85
+ _log("Success", result);
86
+ isQueryFinishedRef.current = true;
87
+ var data = (result === null || result === void 0 ? void 0 : result.data) || {};
88
+ // 交易成功,终止查询
89
+ if (data.status === 1) {
90
+ console.log('交易成功,终止查询');
91
+ reset();
92
+ handleLinklySuccess(result);
93
+ return;
94
+ }
95
+
96
+ // 交易状态为0,且不需要签名,则继续查询
97
+ if (data.status !== undefined && (data === null || data === void 0 ? void 0 : data.status) === 0) {
98
+ console.log('交易状态为0需要继续查询');
99
+ isQueryFinishedRef.current = false;
100
+ _resultQuery();
101
+ return;
102
+ }
103
+
104
+ // 交易状态为-1,则交易失败,不可前往支付标记页面
105
+ if (data.status < 0) {
106
+ var _failRef$current;
107
+ console.log('交易失败,终止查询');
108
+ reset();
109
+ // 交易失败,code码转换为支付失败code码
110
+ result.code = PayStatus.Unknown;
111
+ (_failRef$current = failRef.current) === null || _failRef$current === void 0 || _failRef$current.call(failRef, result, false);
112
+ return;
113
+ }
114
+
115
+ // 需要签名
116
+ if (data.signature_flag === 1) {
117
+ console.log('交易需要签名,终止查询');
118
+ reset();
119
+ gotoSignature();
120
+ return;
121
+ }
122
+ }).catch(function (error) {
123
+ var _failRef$current2;
124
+ console.log('Error: 请求失败', error);
125
+ // 检查是否全局超时 或 是否需要处理结果
126
+ if (checkNeedToHandleResult()) {
127
+ console.log('Error: 全局超时或不需要处理结果,终止查询');
128
+ return;
129
+ }
130
+ isQueryFinishedRef.current = true;
131
+ if ((error === null || error === void 0 ? void 0 : error.name) === "AbortError" || isRequestCanceledRef.current) {
132
+ _log("AbortError");
133
+ console.log('Error: 请求被取消,将继续查询');
134
+ isQueryFinishedRef.current = false;
135
+ _resultQuery();
136
+ return;
137
+ }
138
+ _log("Error", error);
139
+ reset();
140
+ (_failRef$current2 = failRef.current) === null || _failRef$current2 === void 0 || _failRef$current2.call(failRef, error, true);
141
+ }).finally(function () {
142
+ if (requestTimeoutIdRef.current) {
143
+ clearTimeout(requestTimeoutIdRef.current);
144
+ requestTimeoutIdRef.current = null;
145
+ }
146
+ });
147
+ case 10:
148
+ case "end":
149
+ return _context.stop();
150
+ }
151
+ }, _callee);
152
+ }));
153
+ return function _resultQuery() {
154
+ return _ref.apply(this, arguments);
155
+ };
156
+ }();
157
+
158
+ /**
159
+ * 前往签名步骤
160
+ */
161
+ var gotoSignature = function gotoSignature() {
162
+ dispatch(updateStatus(StatusEnum.Question));
163
+ dispatch(updateState({
164
+ title: locales.getText('page.eftpos-pay.text.receipt.again.title')
165
+ }));
166
+ dispatch(updateCustom({
167
+ actionStatus: LinklyActionStatus.Signature
168
+ }));
169
+ };
170
+
171
+ /**
172
+ * 检查是否需要处理结果
173
+ */
174
+ var checkNeedToHandleResult = function checkNeedToHandleResult() {
175
+ return checkIsGlobalTimeout() || !resultCheck() || isQueryFinishedRef.current;
176
+ };
177
+
178
+ /**
179
+ * 检查是否全局超时
180
+ */
181
+ var checkIsGlobalTimeout = function checkIsGlobalTimeout() {
182
+ if (startTimeRef.current) {
183
+ var elapsedTime = Date.now() - startTimeRef.current;
184
+ if (elapsedTime > GlobalTimeout) {
185
+ return true;
186
+ } else {
187
+ return false;
188
+ }
189
+ }
190
+ return false;
191
+ };
192
+
193
+ /**
194
+ * 重置查询状态
195
+ */
196
+ var reset = function reset() {
197
+ console.log('linkly查询状态重制<<<<<<<----');
198
+ _log("Reset");
199
+ if (globalTimeoutIdRef.current) {
200
+ clearTimeout(globalTimeoutIdRef.current);
201
+ globalTimeoutIdRef.current = null;
202
+ }
203
+ if (requestTimeoutIdRef.current) {
204
+ clearTimeout(requestTimeoutIdRef.current);
205
+ requestTimeoutIdRef.current = null;
206
+ }
207
+ if (controllerRef.current) {
208
+ controllerRef.current.abort();
209
+ controllerRef.current = null;
210
+ }
211
+ startTimeRef.current = null;
212
+ isRequestCanceledRef.current = false;
213
+ isQueryFinishedRef.current = true;
214
+ queryIdRef.current = null;
215
+ };
216
+ var _log = function _log(type, res) {
217
+ var _deviceRef$current2;
218
+ var params = {
219
+ // 设备id
220
+ pinpad_id: deviceRef === null || deviceRef === void 0 || (_deviceRef$current2 = deviceRef.current) === null || _deviceRef$current2 === void 0 || (_deviceRef$current2 = _deviceRef$current2.metadata) === null || _deviceRef$current2 === void 0 ? void 0 : _deviceRef$current2.linkly_pinpad_id,
221
+ // 交易流水号
222
+ session_id: numRef.current
223
+ };
224
+ var content = [{
225
+ key: 'queryId',
226
+ value: JSON.stringify(queryIdRef.current)
227
+ }, {
228
+ key: 'params',
229
+ value: JSON.stringify(params)
230
+ }];
231
+ if (type === "Success") {
232
+ content.push({
233
+ key: 'response',
234
+ value: JSON.stringify(res)
235
+ });
236
+ } else if (type === "Error") {
237
+ content.push({
238
+ key: 'error',
239
+ value: JSON.stringify(res)
240
+ });
241
+ }
242
+ sendWarningLog({
243
+ title: "Linkly-".concat(isPay ? 'Pay' : 'Refund', "-\u7ED3\u679C\u67E5\u8BE2--").concat(type),
244
+ content: content
245
+ });
246
+ };
247
+ var run = function run() {
248
+ // 重置状态
249
+ reset();
250
+ console.log('开始查询linkly结果---->>>>>>>');
251
+ _log("Start");
252
+
253
+ // 设置全局超时定时器
254
+ globalTimeoutIdRef.current = setTimeout(function () {
255
+ var _failRef$current3;
256
+ console.log('全局超时,终止所有重试');
257
+ _log("GlobalTimeout");
258
+ setTimeout(reset, 0);
259
+ // 交易超时,需要手动标记交易状态
260
+ (_failRef$current3 = failRef.current) === null || _failRef$current3 === void 0 || _failRef$current3.call(failRef, {
261
+ code: PayStatus.Timeout
262
+ }, false);
263
+ }, GlobalTimeout);
264
+ startTimeRef.current = Date.now();
265
+ isQueryFinishedRef.current = false;
266
+ queryIdRef.current = getUniqueId();
267
+ return _resultQuery();
268
+ };
269
+ return {
270
+ run: run,
271
+ stop: reset
272
+ };
273
+ };
@@ -0,0 +1,2 @@
1
+ declare const Linkly: ({ api, onChange }: any) => JSX.Element;
2
+ export default Linkly;