@pisell/pisellos 0.0.243 → 0.0.244
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/solution/Checkout/index.d.ts +12 -0
- package/dist/solution/Checkout/index.js +364 -223
- package/dist/solution/Checkout/types.d.ts +37 -0
- package/dist/solution/Checkout/types.js +2 -0
- package/lib/solution/Checkout/index.d.ts +12 -0
- package/lib/solution/Checkout/index.js +83 -1
- package/lib/solution/Checkout/types.d.ts +37 -0
- package/lib/solution/Checkout/types.js +2 -0
- package/package.json +1 -1
|
@@ -384,10 +384,14 @@ export declare enum CheckoutHooks {
|
|
|
384
384
|
OnError = "checkout:onError",
|
|
385
385
|
/** 自定义支付金额变更 */
|
|
386
386
|
OnStateAmountChanged = "checkout:onStateAmountChanged",
|
|
387
|
+
/** 系统计算的待付金额变更 */
|
|
388
|
+
OnBalanceDueAmountChanged = "checkout:onBalanceDueAmountChanged",
|
|
387
389
|
/** 订单支付完成(待付款金额 ≤ 0) */
|
|
388
390
|
OnOrderPaymentCompleted = "checkout:onOrderPaymentCompleted",
|
|
389
391
|
/** 订单同步到后端完成 */
|
|
390
392
|
OnOrderSynced = "checkout:onOrderSynced",
|
|
393
|
+
/** 订单同步到后端失败 */
|
|
394
|
+
OnOrderSyncFailed = "checkout:onOrderSyncFailed",
|
|
391
395
|
/** 订单备注变更 */
|
|
392
396
|
OnOrderNoteChanged = "checkout:onOrderNoteChanged",
|
|
393
397
|
/** 商店折扣变更 */
|
|
@@ -423,6 +427,8 @@ export interface CheckoutState {
|
|
|
423
427
|
lastError?: CheckoutError;
|
|
424
428
|
/** UI 自定义支付金额 */
|
|
425
429
|
stateAmount: string;
|
|
430
|
+
/** 系统计算的待付金额(只读,由系统内部计算) */
|
|
431
|
+
balanceDueAmount: string;
|
|
426
432
|
/** 订单是否已同步到后端 */
|
|
427
433
|
isOrderSynced: boolean;
|
|
428
434
|
/** 当前客户信息 */
|
|
@@ -562,6 +568,12 @@ export interface CheckoutModuleAPI extends Module {
|
|
|
562
568
|
* 获取当前自定义支付金额
|
|
563
569
|
*/
|
|
564
570
|
getStateAmount(): string;
|
|
571
|
+
/**
|
|
572
|
+
* 获取系统计算的待付金额(只读)
|
|
573
|
+
*
|
|
574
|
+
* @returns 当前系统计算的待付金额
|
|
575
|
+
*/
|
|
576
|
+
getBalanceDueAmount(): string;
|
|
565
577
|
/**
|
|
566
578
|
* 刷新 stateAmount 为当前剩余未支付金额
|
|
567
579
|
*/
|
|
@@ -782,6 +794,12 @@ export interface CheckoutEventData {
|
|
|
782
794
|
newAmount: string;
|
|
783
795
|
timestamp: number;
|
|
784
796
|
};
|
|
797
|
+
/** 系统计算的待付金额变更事件 */
|
|
798
|
+
balanceDueAmountChanged: {
|
|
799
|
+
oldAmount: string;
|
|
800
|
+
newAmount: string;
|
|
801
|
+
timestamp: number;
|
|
802
|
+
};
|
|
785
803
|
/** 订单支付完成事件 */
|
|
786
804
|
orderPaymentCompleted: {
|
|
787
805
|
orderUuid: string;
|
|
@@ -799,6 +817,25 @@ export interface CheckoutEventData {
|
|
|
799
817
|
timestamp: number;
|
|
800
818
|
/** 是否为手动同步 */
|
|
801
819
|
isManual?: boolean;
|
|
820
|
+
/** 后端响应数据 */
|
|
821
|
+
response?: any;
|
|
822
|
+
};
|
|
823
|
+
/** 订单同步到后端失败事件 */
|
|
824
|
+
orderSyncFailed: {
|
|
825
|
+
orderUuid: string;
|
|
826
|
+
/** 操作类型 */
|
|
827
|
+
operation: 'create' | 'update';
|
|
828
|
+
/** 是否为手动同步 */
|
|
829
|
+
isManual: boolean;
|
|
830
|
+
/** 错误信息 */
|
|
831
|
+
error: string;
|
|
832
|
+
/** 错误类型 */
|
|
833
|
+
errorType: 'network_error' | 'api_error' | 'response_invalid' | 'unknown';
|
|
834
|
+
/** 后端响应数据(如果有) */
|
|
835
|
+
response?: any;
|
|
836
|
+
/** 耗时(毫秒) */
|
|
837
|
+
duration?: number;
|
|
838
|
+
timestamp: number;
|
|
802
839
|
};
|
|
803
840
|
/** 订单备注变更事件 */
|
|
804
841
|
orderNoteChanged: {
|
|
@@ -113,8 +113,10 @@ export var CheckoutHooks = /*#__PURE__*/function (CheckoutHooks) {
|
|
|
113
113
|
CheckoutHooks["OnCheckoutCancelled"] = "checkout:onCancelled";
|
|
114
114
|
CheckoutHooks["OnError"] = "checkout:onError";
|
|
115
115
|
CheckoutHooks["OnStateAmountChanged"] = "checkout:onStateAmountChanged";
|
|
116
|
+
CheckoutHooks["OnBalanceDueAmountChanged"] = "checkout:onBalanceDueAmountChanged";
|
|
116
117
|
CheckoutHooks["OnOrderPaymentCompleted"] = "checkout:onOrderPaymentCompleted";
|
|
117
118
|
CheckoutHooks["OnOrderSynced"] = "checkout:onOrderSynced";
|
|
119
|
+
CheckoutHooks["OnOrderSyncFailed"] = "checkout:onOrderSyncFailed";
|
|
118
120
|
CheckoutHooks["OnOrderNoteChanged"] = "checkout:onOrderNoteChanged";
|
|
119
121
|
CheckoutHooks["OnShopDiscountChanged"] = "checkout:onShopDiscountChanged";
|
|
120
122
|
CheckoutHooks["OnOrderCancelled"] = "checkout:onOrderCancelled";
|
|
@@ -160,6 +160,14 @@ export declare class CheckoutImpl extends BaseModule implements Module, Checkout
|
|
|
160
160
|
* @returns 当前设置的自定义支付金额
|
|
161
161
|
*/
|
|
162
162
|
getStateAmount(): string;
|
|
163
|
+
/**
|
|
164
|
+
* 获取系统计算的待付金额(只读)
|
|
165
|
+
*
|
|
166
|
+
* 此方法返回系统内部计算的实际待付金额,不允许外部修改
|
|
167
|
+
*
|
|
168
|
+
* @returns 当前系统计算的待付金额
|
|
169
|
+
*/
|
|
170
|
+
getBalanceDueAmount(): string;
|
|
163
171
|
/**
|
|
164
172
|
* 刷新 stateAmount 为当前剩余未支付金额
|
|
165
173
|
*
|
|
@@ -391,6 +399,10 @@ export declare class CheckoutImpl extends BaseModule implements Module, Checkout
|
|
|
391
399
|
* 计算剩余未支付金额(从 Payment 模块获取最新数据)
|
|
392
400
|
*/
|
|
393
401
|
private calculateRemainingAmountAsync;
|
|
402
|
+
/**
|
|
403
|
+
* 更新 balanceDueAmount 为当前剩余未支付金额(系统内部计算)
|
|
404
|
+
*/
|
|
405
|
+
private updateBalanceDueAmount;
|
|
394
406
|
/**
|
|
395
407
|
* 更新 stateAmount 为当前剩余未支付金额
|
|
396
408
|
*/
|
|
@@ -53,6 +53,7 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
|
|
|
53
53
|
cartItems: [],
|
|
54
54
|
paymentMethods: [],
|
|
55
55
|
stateAmount: "0.00",
|
|
56
|
+
balanceDueAmount: "0.00",
|
|
56
57
|
cartSummary: void 0,
|
|
57
58
|
isOrderSynced: false,
|
|
58
59
|
currentCustomer: void 0
|
|
@@ -515,6 +516,7 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
|
|
|
515
516
|
this.payment.wallet.clearAllCache();
|
|
516
517
|
this.store.cartItems = [];
|
|
517
518
|
this.store.stateAmount = "0.00";
|
|
519
|
+
this.store.balanceDueAmount = "0.00";
|
|
518
520
|
this.store.isOrderSynced = false;
|
|
519
521
|
this.store.currentCustomer = void 0;
|
|
520
522
|
await this.setStatus(import_types.CheckoutStatus.Cancelled);
|
|
@@ -824,6 +826,16 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
|
|
|
824
826
|
getStateAmount() {
|
|
825
827
|
return this.store.stateAmount;
|
|
826
828
|
}
|
|
829
|
+
/**
|
|
830
|
+
* 获取系统计算的待付金额(只读)
|
|
831
|
+
*
|
|
832
|
+
* 此方法返回系统内部计算的实际待付金额,不允许外部修改
|
|
833
|
+
*
|
|
834
|
+
* @returns 当前系统计算的待付金额
|
|
835
|
+
*/
|
|
836
|
+
getBalanceDueAmount() {
|
|
837
|
+
return this.store.balanceDueAmount;
|
|
838
|
+
}
|
|
827
839
|
/**
|
|
828
840
|
* 刷新 stateAmount 为当前剩余未支付金额
|
|
829
841
|
*
|
|
@@ -1456,6 +1468,7 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
|
|
|
1456
1468
|
this.store.currentOrder = void 0;
|
|
1457
1469
|
this.store.localOrderData = void 0;
|
|
1458
1470
|
this.store.stateAmount = "0.00";
|
|
1471
|
+
this.store.balanceDueAmount = "0.00";
|
|
1459
1472
|
this.store.isOrderSynced = false;
|
|
1460
1473
|
this.store.currentCustomer = void 0;
|
|
1461
1474
|
this.payment.wallet.clearAllCache();
|
|
@@ -1980,6 +1993,41 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
|
|
|
1980
1993
|
});
|
|
1981
1994
|
return result;
|
|
1982
1995
|
}
|
|
1996
|
+
/**
|
|
1997
|
+
* 更新 balanceDueAmount 为当前剩余未支付金额(系统内部计算)
|
|
1998
|
+
*/
|
|
1999
|
+
async updateBalanceDueAmount() {
|
|
2000
|
+
var _a;
|
|
2001
|
+
try {
|
|
2002
|
+
const remainingAmount = await this.calculateRemainingAmountAsync();
|
|
2003
|
+
const currentBalanceDueAmount = this.store.balanceDueAmount;
|
|
2004
|
+
console.log("[Checkout] updateBalanceDueAmount: 状态检查:", {
|
|
2005
|
+
calculatedRemainingAmount: remainingAmount,
|
|
2006
|
+
currentBalanceDueAmount,
|
|
2007
|
+
needsUpdate: remainingAmount !== currentBalanceDueAmount,
|
|
2008
|
+
orderUuid: (_a = this.store.currentOrder) == null ? void 0 : _a.uuid
|
|
2009
|
+
});
|
|
2010
|
+
if (remainingAmount !== currentBalanceDueAmount) {
|
|
2011
|
+
this.store.balanceDueAmount = remainingAmount;
|
|
2012
|
+
await this.core.effects.emit(import_types.CheckoutHooks.OnBalanceDueAmountChanged, {
|
|
2013
|
+
oldAmount: currentBalanceDueAmount,
|
|
2014
|
+
newAmount: remainingAmount,
|
|
2015
|
+
timestamp: Date.now()
|
|
2016
|
+
});
|
|
2017
|
+
console.log("[Checkout] balanceDueAmount 已自动更新:", {
|
|
2018
|
+
oldAmount: currentBalanceDueAmount,
|
|
2019
|
+
newAmount: remainingAmount
|
|
2020
|
+
});
|
|
2021
|
+
} else {
|
|
2022
|
+
console.log("[Checkout] balanceDueAmount 无需更新,当前值已是最新:", {
|
|
2023
|
+
balanceDueAmount: currentBalanceDueAmount,
|
|
2024
|
+
remainingAmount
|
|
2025
|
+
});
|
|
2026
|
+
}
|
|
2027
|
+
} catch (error) {
|
|
2028
|
+
console.error("[Checkout] 更新 balanceDueAmount 失败:", error);
|
|
2029
|
+
}
|
|
2030
|
+
}
|
|
1983
2031
|
/**
|
|
1984
2032
|
* 更新 stateAmount 为当前剩余未支付金额
|
|
1985
2033
|
*/
|
|
@@ -2011,6 +2059,7 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
|
|
|
2011
2059
|
remainingAmount
|
|
2012
2060
|
});
|
|
2013
2061
|
}
|
|
2062
|
+
await this.updateBalanceDueAmount();
|
|
2014
2063
|
await this.checkOrderPaymentCompletion();
|
|
2015
2064
|
} catch (error) {
|
|
2016
2065
|
console.error("[Checkout] 更新 stateAmount 为剩余金额失败:", error);
|
|
@@ -2253,7 +2302,15 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
|
|
|
2253
2302
|
} catch (error) {
|
|
2254
2303
|
submitSuccess = false;
|
|
2255
2304
|
submitError = error instanceof Error ? error.message : String(error);
|
|
2256
|
-
|
|
2305
|
+
await this.core.effects.emit(import_types.CheckoutHooks.OnOrderSyncFailed, {
|
|
2306
|
+
orderUuid: this.store.currentOrder.uuid,
|
|
2307
|
+
operation: isUpdateOperation ? "update" : "create",
|
|
2308
|
+
isManual,
|
|
2309
|
+
error: submitError,
|
|
2310
|
+
errorType: "network_error",
|
|
2311
|
+
duration: Date.now() - startTime,
|
|
2312
|
+
timestamp: Date.now()
|
|
2313
|
+
});
|
|
2257
2314
|
throw error;
|
|
2258
2315
|
} finally {
|
|
2259
2316
|
await this.core.effects.emit(import_types.CheckoutHooks.OnOrderSubmitEnd, {
|
|
@@ -2273,6 +2330,30 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
|
|
|
2273
2330
|
message: checkoutResponse == null ? void 0 : checkoutResponse.message,
|
|
2274
2331
|
data: checkoutResponse == null ? void 0 : checkoutResponse.data
|
|
2275
2332
|
});
|
|
2333
|
+
const responseStatus = checkoutResponse == null ? void 0 : checkoutResponse.status;
|
|
2334
|
+
const isSuccessResponse = responseStatus === true || responseStatus === 200 || responseStatus === "success" || responseStatus === 1 && (checkoutResponse == null ? void 0 : checkoutResponse.code) === 200;
|
|
2335
|
+
if (!isSuccessResponse) {
|
|
2336
|
+
const errorMessage = (checkoutResponse == null ? void 0 : checkoutResponse.message) || "订单同步失败,后端返回非成功状态";
|
|
2337
|
+
console.error("[Checkout] 订单同步失败,响应状态检查未通过:", {
|
|
2338
|
+
expectedSuccess: true,
|
|
2339
|
+
actualStatus: responseStatus,
|
|
2340
|
+
code: checkoutResponse == null ? void 0 : checkoutResponse.code,
|
|
2341
|
+
message: checkoutResponse == null ? void 0 : checkoutResponse.message,
|
|
2342
|
+
errorMessage
|
|
2343
|
+
});
|
|
2344
|
+
await this.core.effects.emit(import_types.CheckoutHooks.OnOrderSyncFailed, {
|
|
2345
|
+
orderUuid: this.store.currentOrder.uuid,
|
|
2346
|
+
operation: isUpdateOperation ? "update" : "create",
|
|
2347
|
+
isManual,
|
|
2348
|
+
error: errorMessage,
|
|
2349
|
+
errorType: "api_error",
|
|
2350
|
+
response: checkoutResponse,
|
|
2351
|
+
duration: Date.now() - startTime,
|
|
2352
|
+
timestamp: Date.now()
|
|
2353
|
+
});
|
|
2354
|
+
throw new Error(errorMessage);
|
|
2355
|
+
}
|
|
2356
|
+
console.log("[Checkout] 响应状态检查通过,开始处理订单数据");
|
|
2276
2357
|
let realOrderId;
|
|
2277
2358
|
if (isUpdateOperation) {
|
|
2278
2359
|
realOrderId = currentOrderId;
|
|
@@ -2599,6 +2680,7 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
|
|
|
2599
2680
|
this.store.localOrderData = void 0;
|
|
2600
2681
|
this.store.cartSummary = void 0;
|
|
2601
2682
|
this.store.stateAmount = "0.00";
|
|
2683
|
+
this.store.balanceDueAmount = "0.00";
|
|
2602
2684
|
this.store.isOrderSynced = false;
|
|
2603
2685
|
this.store.currentCustomer = void 0;
|
|
2604
2686
|
this.store.lastError = void 0;
|
|
@@ -384,10 +384,14 @@ export declare enum CheckoutHooks {
|
|
|
384
384
|
OnError = "checkout:onError",
|
|
385
385
|
/** 自定义支付金额变更 */
|
|
386
386
|
OnStateAmountChanged = "checkout:onStateAmountChanged",
|
|
387
|
+
/** 系统计算的待付金额变更 */
|
|
388
|
+
OnBalanceDueAmountChanged = "checkout:onBalanceDueAmountChanged",
|
|
387
389
|
/** 订单支付完成(待付款金额 ≤ 0) */
|
|
388
390
|
OnOrderPaymentCompleted = "checkout:onOrderPaymentCompleted",
|
|
389
391
|
/** 订单同步到后端完成 */
|
|
390
392
|
OnOrderSynced = "checkout:onOrderSynced",
|
|
393
|
+
/** 订单同步到后端失败 */
|
|
394
|
+
OnOrderSyncFailed = "checkout:onOrderSyncFailed",
|
|
391
395
|
/** 订单备注变更 */
|
|
392
396
|
OnOrderNoteChanged = "checkout:onOrderNoteChanged",
|
|
393
397
|
/** 商店折扣变更 */
|
|
@@ -423,6 +427,8 @@ export interface CheckoutState {
|
|
|
423
427
|
lastError?: CheckoutError;
|
|
424
428
|
/** UI 自定义支付金额 */
|
|
425
429
|
stateAmount: string;
|
|
430
|
+
/** 系统计算的待付金额(只读,由系统内部计算) */
|
|
431
|
+
balanceDueAmount: string;
|
|
426
432
|
/** 订单是否已同步到后端 */
|
|
427
433
|
isOrderSynced: boolean;
|
|
428
434
|
/** 当前客户信息 */
|
|
@@ -562,6 +568,12 @@ export interface CheckoutModuleAPI extends Module {
|
|
|
562
568
|
* 获取当前自定义支付金额
|
|
563
569
|
*/
|
|
564
570
|
getStateAmount(): string;
|
|
571
|
+
/**
|
|
572
|
+
* 获取系统计算的待付金额(只读)
|
|
573
|
+
*
|
|
574
|
+
* @returns 当前系统计算的待付金额
|
|
575
|
+
*/
|
|
576
|
+
getBalanceDueAmount(): string;
|
|
565
577
|
/**
|
|
566
578
|
* 刷新 stateAmount 为当前剩余未支付金额
|
|
567
579
|
*/
|
|
@@ -782,6 +794,12 @@ export interface CheckoutEventData {
|
|
|
782
794
|
newAmount: string;
|
|
783
795
|
timestamp: number;
|
|
784
796
|
};
|
|
797
|
+
/** 系统计算的待付金额变更事件 */
|
|
798
|
+
balanceDueAmountChanged: {
|
|
799
|
+
oldAmount: string;
|
|
800
|
+
newAmount: string;
|
|
801
|
+
timestamp: number;
|
|
802
|
+
};
|
|
785
803
|
/** 订单支付完成事件 */
|
|
786
804
|
orderPaymentCompleted: {
|
|
787
805
|
orderUuid: string;
|
|
@@ -799,6 +817,25 @@ export interface CheckoutEventData {
|
|
|
799
817
|
timestamp: number;
|
|
800
818
|
/** 是否为手动同步 */
|
|
801
819
|
isManual?: boolean;
|
|
820
|
+
/** 后端响应数据 */
|
|
821
|
+
response?: any;
|
|
822
|
+
};
|
|
823
|
+
/** 订单同步到后端失败事件 */
|
|
824
|
+
orderSyncFailed: {
|
|
825
|
+
orderUuid: string;
|
|
826
|
+
/** 操作类型 */
|
|
827
|
+
operation: 'create' | 'update';
|
|
828
|
+
/** 是否为手动同步 */
|
|
829
|
+
isManual: boolean;
|
|
830
|
+
/** 错误信息 */
|
|
831
|
+
error: string;
|
|
832
|
+
/** 错误类型 */
|
|
833
|
+
errorType: 'network_error' | 'api_error' | 'response_invalid' | 'unknown';
|
|
834
|
+
/** 后端响应数据(如果有) */
|
|
835
|
+
response?: any;
|
|
836
|
+
/** 耗时(毫秒) */
|
|
837
|
+
duration?: number;
|
|
838
|
+
timestamp: number;
|
|
802
839
|
};
|
|
803
840
|
/** 订单备注变更事件 */
|
|
804
841
|
orderNoteChanged: {
|
|
@@ -65,8 +65,10 @@ var CheckoutHooks = /* @__PURE__ */ ((CheckoutHooks2) => {
|
|
|
65
65
|
CheckoutHooks2["OnCheckoutCancelled"] = "checkout:onCancelled";
|
|
66
66
|
CheckoutHooks2["OnError"] = "checkout:onError";
|
|
67
67
|
CheckoutHooks2["OnStateAmountChanged"] = "checkout:onStateAmountChanged";
|
|
68
|
+
CheckoutHooks2["OnBalanceDueAmountChanged"] = "checkout:onBalanceDueAmountChanged";
|
|
68
69
|
CheckoutHooks2["OnOrderPaymentCompleted"] = "checkout:onOrderPaymentCompleted";
|
|
69
70
|
CheckoutHooks2["OnOrderSynced"] = "checkout:onOrderSynced";
|
|
71
|
+
CheckoutHooks2["OnOrderSyncFailed"] = "checkout:onOrderSyncFailed";
|
|
70
72
|
CheckoutHooks2["OnOrderNoteChanged"] = "checkout:onOrderNoteChanged";
|
|
71
73
|
CheckoutHooks2["OnShopDiscountChanged"] = "checkout:onShopDiscountChanged";
|
|
72
74
|
CheckoutHooks2["OnOrderCancelled"] = "checkout:onOrderCancelled";
|