package cn.lili.modules.payment.kit; import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; import cn.lili.common.vo.ResultMessage; import cn.lili.modules.payment.entity.RefundLog; import cn.lili.modules.payment.entity.enums.PaymentMethodEnum; import cn.lili.modules.payment.kit.dto.PayParam; import cn.lili.modules.wallet.entity.dos.MemberWithdrawApply; import cn.lili.modules.wallet.entity.dto.TransferResultDTO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 支付接口 * * @author Chopper * @since 2020-12-21 09:32 */ public interface Payment { /** * 普通移动网页调用支付app * * @param request HttpServletRequest * @param response HttpServletResponse * @param payParam api参数 * @return 移动支付所需参数 */ default ResultMessage h5pay(HttpServletRequest request, HttpServletResponse response, PayParam payParam) { throw new ServiceException(ResultCode.PAY_ERROR); } /** * 公众号内部调用支付 * * @param request HttpServletRequest * @param payParam api参数 * @return 公众号内部支付参数 */ default ResultMessage jsApiPay(HttpServletRequest request, PayParam payParam) { throw new ServiceException(ResultCode.PAY_ERROR); } /** * app支付 * * @param request HttpServletRequest * @param payParam 支付参数 * @return app支付所需参数 */ default ResultMessage appPay(HttpServletRequest request, PayParam payParam) { throw new ServiceException(ResultCode.PAY_ERROR); } /** * 展示二维码扫描支付 * * @param request HttpServletRequest * @param payParam 支付参数 * @return 二维码内容 */ default ResultMessage nativePay(HttpServletRequest request, PayParam payParam) { throw new ServiceException(ResultCode.PAY_ERROR); } /** * 小程序支付 * * @param request HttpServletRequest * @param payParam 支付参数 * @return 二维码内容 */ default ResultMessage mpPay(HttpServletRequest request, PayParam payParam) { throw new ServiceException(ResultCode.PAY_ERROR); } /** * 退款 * * @param refundLog 退款请求参数 */ default void refund(RefundLog refundLog) { throw new ServiceException(ResultCode.PAY_ERROR); } /** * 回调 * * @param request HttpServletRequest */ default void callBack(HttpServletRequest request) { throw new ServiceException(ResultCode.PAY_ERROR); } /** * 异步通知 * * @param request HttpServletRequest */ default void notify(HttpServletRequest request) { throw new ServiceException(ResultCode.PAY_ERROR); } /** * 退款异步通知 * * @param request HttpServletRequest */ default void refundNotify(HttpServletRequest request) { throw new ServiceException(ResultCode.PAY_ERROR); } /** * 提现 */ default TransferResultDTO transfer(MemberWithdrawApply memberWithdrawApply) { throw new ServiceException(ResultCode.PAY_ERROR); } /** * 支付回调地址 * * @param api api地址 * @param paymentMethodEnum 支付类型 * @return 回调地址 */ default String callbackUrl(String api, PaymentMethodEnum paymentMethodEnum) { return api + "/buyer/payment/cashier/callback/" + paymentMethodEnum.name(); } /** * 支付异步通知地址 * * @param api api地址 * @param paymentMethodEnum 支付类型 * @return 异步通知地址 */ default String notifyUrl(String api, PaymentMethodEnum paymentMethodEnum) { return api + "/buyer/payment/cashier/notify/" + paymentMethodEnum.name(); } /** * 退款支付异步通知地址 * * @param api api地址 * @param paymentMethodEnum 支付类型 * @return 异步通知地址 */ default String refundNotifyUrl(String api, PaymentMethodEnum paymentMethodEnum) { return api + "/buyer/payment/cashierRefund/notify/" + paymentMethodEnum.name(); } }