package com.kym.service.wechat;

import com.alibaba.fastjson2.JSONObject;
import com.kym.entity.wechat.InvoiceBaseInfo;
import com.wechat.pay.java.service.payments.jsapi.model.PrepayWithRequestPaymentResponse;
import com.wechat.pay.java.service.refund.model.Refund;
import jakarta.servlet.http.HttpServletRequest;
import lombok.SneakyThrows;

import java.io.IOException;

/**
 * @author skyline
 * @description
 * @date 2023-08-11 19:05
 */
public interface WxPayService {
    void applyWxRefund();

    void wxRefund(long refundLogId);

    Refund queryByOutRefundNo(String outRefundNo);

    @SneakyThrows
    void wxRefundNotify(HttpServletRequest request);

    PrepayWithRequestPaymentResponse wxPay(JSONObject rechargeAmount);

    void wxNotify(HttpServletRequest request) throws IOException;

    InvoiceBaseInfo baseInformation();
}
