package com.sqx.modules.pay.service;

import com.sqx.modules.pay.dto.GetPayParamDTO;
import com.sqx.modules.pay.vo.WechatTransactionsParamVO;

import java.math.BigDecimal;

public interface NewPayService {

    /**
     * 获取拉取微信交易参数
     * @param payParam 支付参数
     * @return 微信交易参数
     */
    WechatTransactionsParamVO getWechatTransactionsParamVO(GetPayParamDTO payParam);

    /**
     * 微信支付退款
     * @param orderNo 订单号
     * @return 是否退款成功
     */
    boolean wechatRefund(String orderNo);

    /**
     * 微信分账
     * @param traceNo 交易号
     * @param inMchId 入账商户号
     * @param amount 入账金额
     * @return 分账编号
     */
    void wechatSplitBill(String traceNo, String inMchId, BigDecimal amount);

    /**
     * 微信支付回调
     * @param reqJsonData 请求数据
     * @return 返回结果
     */
    String wechatPayNotify(String reqJsonData);

    /**
     * 是否开启新支付
     * @return boolean
     */
    boolean enableNewPay();
}
