IPaymentPipelineManager.java 1020 Bytes
package com.diligrp.cashier.pipeline.service;

import com.diligrp.cashier.pipeline.core.PaymentPipeline;
import com.diligrp.cashier.pipeline.type.ChannelType;

import java.util.List;

/**
 * 支付通道管理器接口
 */
public interface IPaymentPipelineManager {
    /**
     * 注册支付通道
     */
    <T extends PaymentPipeline<?>> void registerPaymentPipeline(T pipeline);

    /**
     * 获取商户配置的指定类型的支付通道
     */
    <T extends PaymentPipeline<?>> T findPipelineByMchId(long mchId, Class<T> type);

    /**
     * 获取商户配置的指定类型的支付通道
     */
    <T extends PaymentPipeline<?>> T findPipelineByMchId(long mchId, ChannelType channel, Class<T> type);

    /**
     * 获取商户配置的指定类型的支付通道
     */
    <T extends PaymentPipeline<?>> List<T> listPipelines(long mchId, Class<T> type);

    /**
     * 根据ID获取支付通道
     */
    <T extends PaymentPipeline<?>> T findPipelineById(long pipelineId, Class<T> type);
}