@pisell/pisellos 0.0.229 → 0.0.231

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 (65) hide show
  1. package/dist/modules/Order/index.d.ts +13 -2
  2. package/dist/modules/Order/index.js +84 -1
  3. package/dist/modules/Order/types.d.ts +43 -0
  4. package/dist/modules/Order/types.js +8 -0
  5. package/dist/modules/Payment/cash.d.ts +8 -0
  6. package/dist/modules/Payment/cash.js +20 -1
  7. package/dist/modules/Payment/cashRecommendationAlgorithm.d.ts +22 -0
  8. package/dist/modules/Payment/cashRecommendationAlgorithm.js +423 -0
  9. package/dist/modules/Payment/eftpos.js +1 -1
  10. package/dist/modules/Payment/index.d.ts +57 -94
  11. package/dist/modules/Payment/index.js +810 -1109
  12. package/dist/modules/Payment/mx51.d.ts +0 -0
  13. package/dist/modules/Payment/mx51.js +0 -0
  14. package/dist/modules/Payment/types.d.ts +358 -50
  15. package/dist/modules/Payment/types.js +103 -4
  16. package/dist/modules/Payment/utils.d.ts +17 -0
  17. package/dist/modules/Payment/utils.js +62 -0
  18. package/dist/modules/Payment/walletpass.d.ts +96 -0
  19. package/dist/modules/Payment/walletpass.js +492 -0
  20. package/dist/modules/Schedule/index.d.ts +9 -0
  21. package/dist/modules/Schedule/index.js +60 -0
  22. package/dist/solution/BookingTicket/index.d.ts +1 -1
  23. package/dist/solution/Checkout/appointmentDemo.json +1 -0
  24. package/dist/solution/Checkout/index.d.ts +415 -0
  25. package/dist/solution/Checkout/index.js +3622 -0
  26. package/dist/solution/Checkout/types.d.ts +737 -0
  27. package/dist/solution/Checkout/types.js +137 -0
  28. package/dist/solution/Checkout/utils/index.d.ts +73 -0
  29. package/dist/{modules/Payment/wallet.js → solution/Checkout/utils/index.js} +363 -70
  30. package/dist/solution/index.d.ts +1 -0
  31. package/dist/solution/index.js +2 -1
  32. package/lib/modules/Order/index.d.ts +13 -2
  33. package/lib/modules/Order/index.js +58 -1
  34. package/lib/modules/Order/types.d.ts +43 -0
  35. package/lib/modules/Payment/cash.d.ts +8 -0
  36. package/lib/modules/Payment/cash.js +14 -1
  37. package/lib/modules/Payment/cashRecommendationAlgorithm.d.ts +22 -0
  38. package/lib/modules/Payment/cashRecommendationAlgorithm.js +342 -0
  39. package/lib/modules/Payment/eftpos.js +1 -1
  40. package/lib/modules/Payment/index.d.ts +57 -94
  41. package/lib/modules/Payment/index.js +363 -525
  42. package/lib/modules/Payment/mx51.d.ts +0 -0
  43. package/lib/modules/Payment/mx51.js +0 -0
  44. package/lib/modules/Payment/types.d.ts +358 -50
  45. package/lib/modules/Payment/types.js +37 -2
  46. package/lib/modules/Payment/utils.d.ts +17 -0
  47. package/lib/modules/Payment/utils.js +67 -0
  48. package/lib/modules/Payment/walletpass.d.ts +96 -0
  49. package/lib/modules/Payment/walletpass.js +304 -0
  50. package/lib/modules/Schedule/index.d.ts +9 -0
  51. package/lib/modules/Schedule/index.js +36 -0
  52. package/lib/solution/BookingTicket/index.d.ts +1 -1
  53. package/lib/solution/Checkout/appointmentDemo.json +1 -0
  54. package/lib/solution/Checkout/index.d.ts +415 -0
  55. package/lib/solution/Checkout/index.js +2107 -0
  56. package/lib/solution/Checkout/types.d.ts +737 -0
  57. package/lib/solution/Checkout/types.js +80 -0
  58. package/lib/solution/Checkout/utils/index.d.ts +73 -0
  59. package/lib/solution/Checkout/utils/index.js +266 -0
  60. package/lib/solution/index.d.ts +1 -0
  61. package/lib/solution/index.js +3 -1
  62. package/package.json +1 -1
  63. package/dist/modules/Payment/wallet.d.ts +0 -11
  64. package/lib/modules/Payment/wallet.d.ts +0 -11
  65. package/lib/modules/Payment/wallet.js +0 -51
@@ -0,0 +1,737 @@
1
+ import { Module } from '../../types';
2
+ import { OrderModule } from '../../modules/Order';
3
+ import { PaymentModuleAPI, PaymentOrder, PaymentMethod, PaymentStatus, PaymentItem, PaymentItemInput } from '../../modules/Payment';
4
+ import { CartItem } from '../../modules/Cart/types';
5
+ /**
6
+ * 结账状态枚举
7
+ */
8
+ export declare enum CheckoutStatus {
9
+ /** 初始化中 */
10
+ Initializing = "initializing",
11
+ /** 准备就绪 */
12
+ Ready = "ready",
13
+ /** 创建订单中 */
14
+ CreatingOrder = "creating_order",
15
+ /** 订单已创建 */
16
+ OrderCreated = "order_created",
17
+ /** 处理支付中 */
18
+ ProcessingPayment = "processing_payment",
19
+ /** 支付完成 */
20
+ PaymentCompleted = "payment_completed",
21
+ /** 结账完成 */
22
+ Completed = "completed",
23
+ /** 已取消 */
24
+ Cancelled = "cancelled",
25
+ /** 错误状态 */
26
+ Error = "error"
27
+ }
28
+ /**
29
+ * 结账步骤枚举
30
+ */
31
+ export declare enum CheckoutStep {
32
+ /** 订单确认 */
33
+ OrderConfirmation = "order_confirmation",
34
+ /** 支付方式选择 */
35
+ PaymentMethod = "payment_method",
36
+ /** 支付处理 */
37
+ PaymentProcessing = "payment_processing",
38
+ /** 完成 */
39
+ Complete = "complete"
40
+ }
41
+ /**
42
+ * 结账错误类型
43
+ */
44
+ export declare enum CheckoutErrorType {
45
+ /** 订单创建失败 */
46
+ OrderCreationFailed = "order_creation_failed",
47
+ /** 支付失败 */
48
+ PaymentFailed = "payment_failed",
49
+ /** 验证失败 */
50
+ ValidationFailed = "validation_failed",
51
+ /** 网络错误 */
52
+ NetworkError = "network_error",
53
+ /** 未知错误 */
54
+ UnknownError = "unknown_error"
55
+ }
56
+ /**
57
+ * 结账错误信息
58
+ */
59
+ export interface CheckoutError {
60
+ /** 错误类型 */
61
+ type: CheckoutErrorType;
62
+ /** 错误消息 */
63
+ message: string;
64
+ /** 错误详情 */
65
+ details?: any;
66
+ /** 错误时间戳 */
67
+ timestamp: number;
68
+ }
69
+ /**
70
+ * 结账初始化参数
71
+ */
72
+ export interface CheckoutInitParams {
73
+ /** 购物车商品 */
74
+ cartItems: CartItem[];
75
+ /** 订单类型 */
76
+ orderType?: 'virtual' | 'appointment_booking';
77
+ /** 平台类型 */
78
+ platform?: 'pc' | 'h5';
79
+ /** 自动进入支付 */
80
+ autoPayment?: boolean;
81
+ }
82
+ /**
83
+ * 购物车小计项
84
+ */
85
+ export interface CartSummaryItem {
86
+ /** 项目键名 */
87
+ key: string;
88
+ /** 项目值 */
89
+ value: number;
90
+ /** 是否隐藏显示 */
91
+ hidden?: boolean;
92
+ /** 显示标签 */
93
+ label?: string;
94
+ /** 税费详情 (当 key 为 tax 时) */
95
+ tax?: Record<string, any>;
96
+ }
97
+ /**
98
+ * 从购物车小计提取的金额信息
99
+ */
100
+ export interface ExtractedAmountInfo {
101
+ /** 总金额 (expect_amount) */
102
+ totalAmount: string;
103
+ /** 小计 (sub_total) */
104
+ subTotal: string;
105
+ /** 税费 (tax) */
106
+ taxAmount: string;
107
+ /** 折扣 (discount) */
108
+ discountAmount: string;
109
+ /** 商店折扣 (shop_discount) */
110
+ shopDiscountAmount: string;
111
+ /** 四舍五入金额 (custom_roundingAmount) */
112
+ roundingAmount: string;
113
+ /** 定金金额 (如果是定金订单) */
114
+ depositAmount?: string;
115
+ /** 税费详情 */
116
+ taxDetails?: Record<string, any>;
117
+ }
118
+ /**
119
+ * 本地订单创建参数
120
+ */
121
+ export interface CreateLocalOrderParams {
122
+ /** 订单数据 (来自购物车的完整订单参数) */
123
+ orderData: LocalOrderData;
124
+ /** 购物车小计数据 */
125
+ cartSummary: CartSummaryItem[];
126
+ /** 是否自动进入支付流程 */
127
+ autoPayment?: boolean;
128
+ totalInfo: any;
129
+ }
130
+ /**
131
+ * 手动下单参数
132
+ */
133
+ export interface PlaceOrderParams {
134
+ /** 订单提交的 URL (可选,默认使用 /order/appointment) */
135
+ url?: string;
136
+ /** 是否自动替换虚拟订单ID为真实订单ID */
137
+ autoReplaceOrderId?: boolean;
138
+ }
139
+ /**
140
+ * 本地订单数据结构 (基于 appointmentDemo.json)
141
+ */
142
+ export interface LocalOrderData {
143
+ /** 订单类型 */
144
+ type: 'appointment_booking' | 'virtual';
145
+ /** 平台 */
146
+ platform: 'PC' | 'H5';
147
+ /** 销售渠道 */
148
+ sales_channel: string;
149
+ /** 订单销售渠道 */
150
+ order_sales_channel: string;
151
+ /** 预订信息 */
152
+ bookings: LocalBookingItem[];
153
+ /** 商店备注 */
154
+ shop_note: string;
155
+ /** 预约日期 */
156
+ schedule_date: string;
157
+ /** 是否定金 */
158
+ is_deposit: number;
159
+ /** 关联商品 */
160
+ relation_products: any[];
161
+ /** 关联表单 */
162
+ relation_forms: any[];
163
+ /** 客户ID */
164
+ customer_id?: string;
165
+ /** 客户姓名 */
166
+ customer_name?: string;
167
+ /** 创建时间 (YYYY-MM-DD hh:mm:ss) */
168
+ created_at?: string;
169
+ /** 附加费用 */
170
+ surcharge_fee?: number;
171
+ /** 商店折扣金额 */
172
+ shop_discount?: number;
173
+ }
174
+ /**
175
+ * 本地预订项
176
+ */
177
+ export interface LocalBookingItem {
178
+ /** ID */
179
+ id: number;
180
+ /** 数量 */
181
+ number: number;
182
+ /** 注册类型 */
183
+ registration_type: string;
184
+ /** 关联商品 */
185
+ relation_products: any[];
186
+ /** 是否全部 */
187
+ is_all: boolean;
188
+ /** 商品信息 */
189
+ product: LocalProductInfo;
190
+ /** 子类型 */
191
+ sub_type: string;
192
+ /** 时长 */
193
+ duration: number;
194
+ /** 喜好状态 */
195
+ like_status: string;
196
+ /** 资源列表 */
197
+ resources: LocalResourceItem[];
198
+ /** 预约ID */
199
+ schedule_id: number;
200
+ /** 开始日期 */
201
+ start_date: string;
202
+ /** 开始时间 */
203
+ start_time: string;
204
+ /** 选择日期 */
205
+ select_date: string;
206
+ /** 结束时间 */
207
+ end_time: string;
208
+ /** 结束日期 */
209
+ end_date: string;
210
+ /** 元数据 */
211
+ metadata: {
212
+ account?: {
213
+ id: number;
214
+ username: string;
215
+ };
216
+ capacity?: Array<{
217
+ id: number;
218
+ value: number;
219
+ name: string;
220
+ }>;
221
+ };
222
+ /** 持有者 */
223
+ holder: any;
224
+ /** 关联表单 */
225
+ relation_forms: any[];
226
+ }
227
+ /**
228
+ * 本地商品信息
229
+ */
230
+ export interface LocalProductInfo {
231
+ /** 数量 */
232
+ num: number;
233
+ /** 商品ID */
234
+ product_id: number;
235
+ /** 商品变体ID */
236
+ product_variant_id: number;
237
+ /** 商品套装 */
238
+ product_bundle: any[];
239
+ /** 商品选项 */
240
+ product_option_item: any[];
241
+ /** 折扣列表 */
242
+ discount_list: LocalDiscountItem[];
243
+ }
244
+ /**
245
+ * 本地折扣项
246
+ */
247
+ export interface LocalDiscountItem {
248
+ /** 金额 */
249
+ amount: number;
250
+ /** 类型 */
251
+ type: string;
252
+ /** 折扣详情 */
253
+ discount: {
254
+ resource_id: number;
255
+ title: {
256
+ auto: string;
257
+ original: string;
258
+ en?: string;
259
+ 'zh-CN'?: string;
260
+ 'zh-HK'?: string;
261
+ };
262
+ original_amount: number;
263
+ product_id: number;
264
+ percent: string;
265
+ };
266
+ }
267
+ /**
268
+ * 本地资源项
269
+ */
270
+ export interface LocalResourceItem {
271
+ /** 关联类型 */
272
+ relation_type: string;
273
+ /** 喜好状态 */
274
+ like_status: string;
275
+ /** 表单ID */
276
+ form_id: number;
277
+ /** 关联ID */
278
+ relation_id: number;
279
+ /** 容量 */
280
+ capacity: number;
281
+ /** 元数据 */
282
+ metadata: {
283
+ combined_resource?: {
284
+ status: number;
285
+ resource_ids: number[];
286
+ } | null;
287
+ form_name: string;
288
+ resource_name: string;
289
+ };
290
+ /** 子资源 */
291
+ children?: LocalResourceItem[];
292
+ /** ID (可选) */
293
+ id?: number;
294
+ /** 主字段 (可选) */
295
+ main_field?: string;
296
+ /** 资源类型 (可选) */
297
+ resourceType?: string;
298
+ }
299
+ /**
300
+ * 订单创建参数
301
+ */
302
+ export interface CreateOrderParams {
303
+ /** 购物车商品 */
304
+ cartItems: CartItem[];
305
+ /** 订单类型 */
306
+ type?: 'virtual' | 'appointment_booking';
307
+ /** 平台类型 */
308
+ platform?: 'pc' | 'h5';
309
+ /** 额外参数 */
310
+ extra?: Record<string, any>;
311
+ }
312
+ /**
313
+ * 支付处理参数
314
+ */
315
+ export interface ProcessPaymentParams {
316
+ /** 订单UUID */
317
+ orderUuid: string;
318
+ /** 支付方式代码 */
319
+ paymentMethodCode: string;
320
+ /** 支付金额 */
321
+ amount: string | number;
322
+ /** 支付元数据 */
323
+ metadata?: Record<string, any>;
324
+ }
325
+ /**
326
+ * 结账状态信息
327
+ */
328
+ export interface CheckoutStatusInfo {
329
+ /** 当前状态 */
330
+ status: CheckoutStatus;
331
+ /** 当前步骤 */
332
+ step: CheckoutStep;
333
+ /** 进度百分比 (0-100) */
334
+ progress: number;
335
+ /** 状态消息 */
336
+ message?: string;
337
+ /** 错误信息 */
338
+ error?: CheckoutError;
339
+ }
340
+ /**
341
+ * 结账摘要信息
342
+ */
343
+ export interface CheckoutSummary {
344
+ /** 订单信息 */
345
+ order?: PaymentOrder;
346
+ /** 总金额 */
347
+ totalAmount: string;
348
+ /** 已支付金额 */
349
+ paidAmount: string;
350
+ /** 待支付金额 */
351
+ remainingAmount: string;
352
+ /** 支付状态 */
353
+ paymentStatus: PaymentStatus;
354
+ /** 可用支付方式 */
355
+ availablePaymentMethods: PaymentMethod[];
356
+ }
357
+ /**
358
+ * 结账事件钩子
359
+ */
360
+ export declare enum CheckoutHooks {
361
+ /** 结账初始化完成 */
362
+ OnCheckoutInitialized = "checkout:onInitialized",
363
+ /** 状态变更 */
364
+ OnStatusChanged = "checkout:onStatusChanged",
365
+ /** 步骤变更 */
366
+ OnStepChanged = "checkout:onStepChanged",
367
+ /** 订单创建成功 */
368
+ OnOrderCreated = "checkout:onOrderCreated",
369
+ /** 订单创建失败 */
370
+ OnOrderCreationFailed = "checkout:onOrderCreationFailed",
371
+ /** 支付开始 */
372
+ OnPaymentStarted = "checkout:onPaymentStarted",
373
+ /** 支付成功 */
374
+ OnPaymentSuccess = "checkout:onPaymentSuccess",
375
+ /** 支付失败 */
376
+ OnPaymentFailed = "checkout:onPaymentFailed",
377
+ /** 结账完成 */
378
+ OnCheckoutCompleted = "checkout:onCompleted",
379
+ /** 结账取消 */
380
+ OnCheckoutCancelled = "checkout:onCancelled",
381
+ /** 错误发生 */
382
+ OnError = "checkout:onError",
383
+ /** 自定义支付金额变更 */
384
+ OnStateAmountChanged = "checkout:onStateAmountChanged",
385
+ /** 订单支付完成(待付款金额 ≤ 0) */
386
+ OnOrderPaymentCompleted = "checkout:onOrderPaymentCompleted",
387
+ /** 订单同步到后端完成 */
388
+ OnOrderSynced = "checkout:onOrderSynced",
389
+ /** 订单备注变更 */
390
+ OnOrderNoteChanged = "checkout:onOrderNoteChanged",
391
+ /** 商店折扣变更 */
392
+ OnShopDiscountChanged = "checkout:onShopDiscountChanged"
393
+ }
394
+ /**
395
+ * 结账状态数据
396
+ */
397
+ export interface CheckoutState {
398
+ /** 当前状态 */
399
+ status: CheckoutStatus;
400
+ /** 当前步骤 */
401
+ step: CheckoutStep;
402
+ /** 当前订单 */
403
+ currentOrder?: PaymentOrder;
404
+ /** 购物车商品 */
405
+ cartItems: CartItem[];
406
+ /** 本地订单数据 */
407
+ localOrderData?: LocalOrderData;
408
+ /** 购物车小计数据 */
409
+ cartSummary?: CartSummaryItem[];
410
+ /** 可用支付方式 */
411
+ paymentMethods: PaymentMethod[];
412
+ /** 错误信息 */
413
+ lastError?: CheckoutError;
414
+ /** UI 自定义支付金额 */
415
+ stateAmount: string;
416
+ /** 订单是否已同步到后端 */
417
+ isOrderSynced: boolean;
418
+ /** 当前客户信息 */
419
+ currentCustomer?: {
420
+ customer_id?: string;
421
+ customer_name?: string;
422
+ };
423
+ }
424
+ /**
425
+ * 当前订单基础信息
426
+ */
427
+ export interface CurrentOrderInfo {
428
+ /** 订单UUID */
429
+ uuid?: string;
430
+ /** 订单ID */
431
+ orderId?: string;
432
+ /** 订单状态 */
433
+ status?: CheckoutStatus;
434
+ /** 当前步骤 */
435
+ step?: CheckoutStep;
436
+ /** 订单总金额 */
437
+ totalAmount?: string;
438
+ /** 待付金额 */
439
+ remainingAmount?: string;
440
+ /** 支付状态 */
441
+ paymentStatus?: PaymentStatus;
442
+ /** 是否为定金订单 */
443
+ isDeposit?: boolean;
444
+ /** 定金金额 */
445
+ depositAmount?: string;
446
+ /** 订单类型 */
447
+ orderType?: 'virtual' | 'appointment_booking';
448
+ /** 平台类型 */
449
+ platform?: 'pc' | 'h5';
450
+ /** 创建时间 */
451
+ createdAt?: string;
452
+ /** 商品数量 */
453
+ itemCount?: number;
454
+ /** 是否有本地订单数据 */
455
+ hasLocalOrderData?: boolean;
456
+ }
457
+ /**
458
+ * 结账解决方案 API 接口
459
+ */
460
+ export interface CheckoutModuleAPI extends Module {
461
+ /**
462
+ * 初始化结账流程
463
+ */
464
+ initializeCheckoutAsync(params: CheckoutInitParams): Promise<void>;
465
+ /**
466
+ * 创建本地订单 (前端模拟下单流程)
467
+ */
468
+ createLocalOrderAsync(params: CreateLocalOrderParams): Promise<PaymentOrder>;
469
+ /**
470
+ * 手动下单 (根据虚拟订单生成实际订单)
471
+ */
472
+ placeOrderAsync(params?: PlaceOrderParams): Promise<{
473
+ success: boolean;
474
+ orderId?: string;
475
+ error?: string;
476
+ }>;
477
+ /**
478
+ * 创建订单
479
+ */
480
+ createOrderAsync(params: CreateOrderParams): Promise<PaymentOrder>;
481
+ /**
482
+ * 处理支付
483
+ */
484
+ processPaymentAsync(params: ProcessPaymentParams): Promise<void>;
485
+ /**
486
+ * 完成结账
487
+ */
488
+ completeCheckoutAsync(): Promise<{
489
+ success: boolean;
490
+ orderId?: string;
491
+ }>;
492
+ /**
493
+ * 取消结账
494
+ */
495
+ cancelCheckoutAsync(): Promise<void>;
496
+ /**
497
+ * 获取结账状态
498
+ */
499
+ getCheckoutStatus(): CheckoutStatusInfo;
500
+ /**
501
+ * 获取结账摘要
502
+ */
503
+ getCheckoutSummaryAsync(): Promise<CheckoutSummary>;
504
+ /**
505
+ * 获取可用支付方式
506
+ */
507
+ getAvailablePaymentMethodsAsync(): Promise<PaymentMethod[]>;
508
+ /**
509
+ * 刷新支付方式缓存
510
+ */
511
+ refreshPaymentMethodsAsync(): Promise<PaymentMethod[]>;
512
+ /**
513
+ * 获取当前订单基础信息
514
+ */
515
+ getCurrentOrderInfo(): CurrentOrderInfo | null;
516
+ /**
517
+ * 获取当前订单的支付项
518
+ */
519
+ getCurrentOrderPaymentItemsAsync(): Promise<PaymentItem[]>;
520
+ /**
521
+ * 验证结账前置条件
522
+ */
523
+ validateCheckoutAsync(): Promise<{
524
+ valid: boolean;
525
+ errors: string[];
526
+ }>;
527
+ /**
528
+ * 重试失败的操作
529
+ */
530
+ retryFailedOperationAsync(): Promise<void>;
531
+ /**
532
+ * 设置当前步骤
533
+ */
534
+ setCurrentStep(step: CheckoutStep): void;
535
+ /**
536
+ * 获取订单模块
537
+ */
538
+ getOrderModule(): OrderModule;
539
+ /**
540
+ * 获取支付模块
541
+ */
542
+ getPaymentModule(): PaymentModuleAPI;
543
+ /**
544
+ * 替换本地订单ID为真实订单ID
545
+ */
546
+ replaceLocalOrderIdAsync(newOrderId: string): Promise<PaymentOrder | null>;
547
+ /**
548
+ * 设置自定义支付金额
549
+ */
550
+ setStateAmountAsync(amount: string): Promise<void>;
551
+ /**
552
+ * 获取当前自定义支付金额
553
+ */
554
+ getStateAmount(): string;
555
+ /**
556
+ * 刷新 stateAmount 为当前剩余未支付金额
557
+ */
558
+ refreshStateAmountAsync(): Promise<void>;
559
+ /**
560
+ * 获取购物车小计数据
561
+ */
562
+ getCartSummary(): CartSummaryItem[] | null;
563
+ /**
564
+ * 获取提取的金额详细信息
565
+ */
566
+ getExtractedAmountInfo(): ExtractedAmountInfo | null;
567
+ /**
568
+ * 获取支付方式列表(直接调用 Payment 模块)
569
+ */
570
+ getPaymentMethodsAsync(): Promise<PaymentMethod[]>;
571
+ /**
572
+ * 为当前订单添加支付项
573
+ */
574
+ addPaymentItemAsync(paymentItem: PaymentItemInput): Promise<void>;
575
+ /**
576
+ * 删除当前订单的支付项
577
+ */
578
+ deletePaymentItemAsync(paymentUuid: string): Promise<void>;
579
+ /**
580
+ * 批量更新当前订单的代金券支付项(覆盖更新)
581
+ */
582
+ updateVoucherPaymentItemsAsync(voucherPaymentItems: PaymentItemInput[]): Promise<void>;
583
+ /**
584
+ * 修改当前订单的定金状态
585
+ */
586
+ updateOrderDepositStatusAsync(isDeposit: number): Promise<void>;
587
+ /**
588
+ * 更新当前订单的客户信息
589
+ */
590
+ updateOrderCustomerAsync(customer: {
591
+ customer_id?: string;
592
+ customer_name?: string;
593
+ }): Promise<void>;
594
+ /**
595
+ * 获取当前订单的客户信息
596
+ */
597
+ getCurrentCustomer(): {
598
+ customer_id?: string;
599
+ customer_name?: string;
600
+ } | null;
601
+ /**
602
+ * 手动同步订单到后端
603
+ *
604
+ * 用于强制同步订单到后端,特别适用于纯代金券支付完成的订单
605
+ */
606
+ manualSyncOrderAsync(): Promise<{
607
+ success: boolean;
608
+ message?: string;
609
+ orderId?: string;
610
+ orderUuid?: string;
611
+ }>;
612
+ /**
613
+ * 检查订单是否需要手动同步
614
+ *
615
+ * 返回订单是否为纯代金券支付且待付金额<=0但未同步的状态
616
+ */
617
+ needsManualSync(): boolean;
618
+ /**
619
+ * 更新订单备注
620
+ *
621
+ * @param note 订单备注内容
622
+ */
623
+ updateOrderNoteAsync(note: string): Promise<void>;
624
+ /**
625
+ * 获取当前订单备注
626
+ *
627
+ * @returns 当前订单的备注内容,如果没有则返回空字符串
628
+ */
629
+ getOrderNote(): string;
630
+ /**
631
+ * 获取当前订单ID
632
+ *
633
+ * @returns 当前订单的ID,如果没有订单则返回null
634
+ */
635
+ getCurrentOrderId(): string | null;
636
+ /**
637
+ * 更新订单商店折扣
638
+ *
639
+ * 同时更新cartSummary和localOrderData中的shop_discount值
640
+ *
641
+ * @param discountAmount 商店折扣金额
642
+ */
643
+ updateShopDiscountAsync(discountAmount: number): Promise<void>;
644
+ /**
645
+ * 获取当前商店折扣金额
646
+ *
647
+ * @returns 当前的商店折扣金额,如果没有则返回0
648
+ */
649
+ getShopDiscount(): number;
650
+ /**
651
+ * 保存订单并稍后支付
652
+ *
653
+ * 将当前订单保存到后端,但排除代金券类支付项(voucher_id),
654
+ * 适用于用户想要保存订单但稍后完成支付的场景
655
+ *
656
+ * @returns 保存结果,包含订单ID和状态
657
+ */
658
+ saveForLaterPaymentAsync(): Promise<{
659
+ success: boolean;
660
+ message?: string;
661
+ orderId?: string;
662
+ orderUuid?: string;
663
+ }>;
664
+ }
665
+ /**
666
+ * 结账事件数据类型
667
+ */
668
+ export interface CheckoutEventData {
669
+ /** 状态变更事件 */
670
+ statusChanged: {
671
+ oldStatus: CheckoutStatus;
672
+ newStatus: CheckoutStatus;
673
+ timestamp: number;
674
+ };
675
+ /** 步骤变更事件 */
676
+ stepChanged: {
677
+ oldStep: CheckoutStep;
678
+ newStep: CheckoutStep;
679
+ timestamp: number;
680
+ };
681
+ /** 订单创建事件 */
682
+ orderCreated: {
683
+ order: PaymentOrder;
684
+ timestamp: number;
685
+ };
686
+ /** 支付事件 */
687
+ paymentEvent: {
688
+ orderUuid: string;
689
+ paymentMethodCode: string;
690
+ amount: string;
691
+ timestamp: number;
692
+ };
693
+ /** 错误事件 */
694
+ error: {
695
+ error: CheckoutError;
696
+ context?: any;
697
+ timestamp: number;
698
+ };
699
+ /** 自定义支付金额变更事件 */
700
+ stateAmountChanged: {
701
+ oldAmount: string;
702
+ newAmount: string;
703
+ timestamp: number;
704
+ };
705
+ /** 订单支付完成事件 */
706
+ orderPaymentCompleted: {
707
+ orderUuid: string;
708
+ orderId: string;
709
+ totalAmount: string;
710
+ paidAmount: string;
711
+ remainingAmount: string;
712
+ timestamp: number;
713
+ };
714
+ /** 订单同步到后端完成事件 */
715
+ orderSynced: {
716
+ orderUuid: string;
717
+ realOrderId: string;
718
+ virtualOrderId: string;
719
+ timestamp: number;
720
+ /** 是否为手动同步 */
721
+ isManual?: boolean;
722
+ };
723
+ /** 订单备注变更事件 */
724
+ orderNoteChanged: {
725
+ orderUuid?: string;
726
+ oldNote: string;
727
+ newNote: string;
728
+ timestamp: number;
729
+ };
730
+ /** 商店折扣变更事件 */
731
+ shopDiscountChanged: {
732
+ orderUuid?: string;
733
+ oldDiscount: number;
734
+ newDiscount: number;
735
+ timestamp: number;
736
+ };
737
+ }