import { PaymentMethodOptions } from '../types'; declare class PaymentMethod { /** 初始化参数 */ private initOptions; private paymentNum; private orderId?; private callback; private shouldContinue; private config; private controller; private queryController; private queryStartTimer; private globalTimeoutTimer; private requestTimeoutTimer; private queryIntervalTimer; private isFinished; private isQuerying; private currentActionType; private currentQueryId; private currentRunId; private currentQueryApi; constructor(options: PaymentMethodOptions); /** * 判断请求是否需要等待轮询结果 * 1. 有明确错误code且不是超时和支付超时,则直接失败 * @param code 错误码 */ private isBusinessFailed; /** * 判断业务是否成功 */ private isBusinessSuccess; /** * 判断最外层code是否是超时错误 */ private isOuterCodeTimeout; /** * 清理定时器和请求控制器 */ private cleanupTimersAndControllers; /** * 清理资源并重置状态 * @param markAsFinished 是否标记为已完成(true: 操作完成; false: 准备新操作) */ private clean; /** * 开始新的操作流程(统一的流程初始化) * @param actionType 操作类型 * @returns 本次流程的唯一ID */ private startNewOperation; /** * 处理操作过程 */ private handleOperationProcess; /** * 处理成功结果 */ private handleOperationSuccess; /** * 处理错误(最终失败) * @param error 错误信息 */ private handleOperationError; /** * 处理接口响应 */ private handleResponse; /** * 创建超时 Promise */ private createTimeoutPromise; /** * 单次查询请求 */ private performQuery; /** * 安排下一次查询 */ private scheduleNextQuery; /** * 开始轮询 */ private startQuery; /** * 获取操作API和查询API */ private getActionApi; /** * 执行纯查询操作(不需要先调用支付/退款接口) */ private runQuery; /** * 执行操作的核心方法 */ private run; /** * 执行操作 */ private runAction; /** * 支付 * @param params 支付参数 */ pay(params: Record, config?: Record): void; /** * 支付取消 * @param params 取消参数 */ payAction(params: Record, config?: Record): void; /** * 退款 * @param params 退款参数 */ refund(params: Record, config?: Record): void; /** * 退款取消 * @param params 取消参数 */ refundAction(params: Record, config?: Record): void; /** * 支付查询(直接查询,带2分钟超时和轮询机制) */ payQuery(): void; /** * 退款查询(直接查询,带2分钟超时和轮询机制) */ refundQuery(): void; /** * 停止操作,后续依然可以重新发起操作 */ stop(): void; /** * 销毁实例(完全清理并上传日志) * 注意:销毁后实例不可再使用 */ destroy(): void; } export default PaymentMethod;