package com.jeesharp.business.modules.pay.tlinx.service;

import com.jeesharp.business.modules.pay.tlinx.dto.*;

/**
 * 浦发银行支付核心服务接口
 * 
 * @author wangmeng
 * @since 2026-03-16
 */
public interface TLinxBankPayService {
    
    /**
     * 统一下单
     * 
     * @param request 下单请求
     * @return 下单响应
     */
    TLinxPayOrderResponse createOrder(TLinxPayOrderRequest request);
    
    /**
     * 查询支付状态
     * 
     * @param request 查询请求
     * @return 查询响应
     */
    TLinxPayOrderResponse queryPayStatus(TLinxPayStatusRequest request);
    
    /**
     * 退款
     * 
     * @param request 退款请求
     * @return 退款响应
     */
    TLinxPayOrderResponse refund(TLinxRefundRequest request);
    
    /**
     * 取消订单
     * 
     * @param outNo 开发者流水号
     * @return 取消结果
     */
    TLinxPayOrderResponse cancelOrder(String outNo);
    
    /**
     * 查询订单详情
     * 
     * @param outNo 开发者流水号
     * @return 订单详情
     */
    TLinxPayOrderResponse queryOrderDetail(String outNo);
    
    /**
     * 验证回调签名
     * 
     * @param notifyData 回调数据
     * @return 是否验证通过
     */
    boolean verifyNotifySignature(String notifyData);
    
    /**
     * 解密回调数据
     * 
     * @param encryptedData 加密数据
     * @return 解密后的数据
     */
    String decryptNotifyData(String encryptedData);
}