支付协议
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* 支付/订单相关工具
|
||||
*/
|
||||
import type { OrderStatus } from 'db://assets/Scripts/chat18x/payment/types';
|
||||
|
||||
/**
|
||||
* 将数值状态映射为前端字符串状态
|
||||
* @param status CSQueryOrderRes.status:-1=失败,0=成功,1=处理中,其它=未知
|
||||
* @param options 可选标记(若你的业务在别处判定了取消/过期)
|
||||
* @returns OrderStatus
|
||||
*/
|
||||
export function mapQueryOrderStatus(
|
||||
status: number | null | undefined,
|
||||
options: { canceled?: boolean; expired?: boolean } = {}
|
||||
): OrderStatus {
|
||||
const { canceled = false, expired = false } = options;
|
||||
|
||||
if (canceled) return "CANCELED";
|
||||
if (expired) return "EXPIRED";
|
||||
|
||||
switch (status) {
|
||||
case 1: return "PENDING"; // 处理中
|
||||
case 0: return "SUCCESS"; // 成功
|
||||
case -1: return "FAILED"; // 失败
|
||||
default: return "CREATED"; // 未知/初始,按“已创建”兜底
|
||||
}
|
||||
}
|
||||
|
||||
/** 是否为终态(无需再轮询) */
|
||||
export function isTerminalStatus(s: OrderStatus): boolean {
|
||||
return s === "SUCCESS" || s === "FAILED" || s === "CANCELED" || s === "EXPIRED";
|
||||
}
|
||||
|
||||
/** 是否应继续轮询查询订单 */
|
||||
export function shouldPoll(s: OrderStatus): boolean {
|
||||
return s === "CREATED" || s === "PENDING";
|
||||
}
|
||||
Reference in New Issue
Block a user