package com.ruoyi.ai.service;

import com.ruoyi.ai.domain.PayResVO;
import com.ruoyi.ai.domain.VmCallBackReq;

/**
 * VM支付服务接口
 *
 * @author system
 * @date 2025-01-XX
 */
public interface IVmService {

    /**
     * VM支付
     *
     * @param gearId 档位ID
     * @param vmCardInfo VM卡信息（可选，如果为null则需要在extParam中传入）
     * @param clientIp 客户端IP地址
     * @return 支付结果
     * @throws Exception 支付异常
     */
    PayResVO vmPay(Long gearId, com.ruoyi.ai.domain.VmCardInfo vmCardInfo, String clientIp) throws Exception;

    /**
     * VM支付回调。文档要求返回字符串 "success" 表示成功，非 success 表示失败，支付中心将再次通知。
     *
     * @param req 回调请求
     * @return "success" 表示处理成功，其他字符串表示失败
     */
    String vmCallBack(VmCallBackReq req);
}
