using MiAssessment.Model.Models.Payment;
namespace MiAssessment.Core.Interfaces;
///
/// 微信支付服务接口
///
public interface IWechatPayService
{
///
/// 创建微信支付统一下单
///
/// 支付请求
/// 支付结果
Task CreatePaymentAsync(WechatPayRequest request);
///
/// 验证支付签名
///
/// 参数字典
/// 签名
/// 商户密钥(可选,不传则使用默认商户)
/// 是否验证通过
bool VerifySign(Dictionary parameters, string sign, string? merchantKey = null);
///
/// 生成支付签名
///
/// 参数字典
/// 商户密钥(可选,不传则使用默认商户)
/// 签名字符串
string MakeSign(Dictionary parameters, string? merchantKey = null);
///
/// 验证微信回调签名
///
/// 回调数据
/// 是否验证通过
bool VerifyNotifySign(WechatNotifyData notifyData);
///
/// 根据订单号获取商户密钥
///
/// 订单号
/// 商户密钥
string GetMerchantKeyByOrderNo(string orderNo);
///
/// 发送订单发货通知到微信
///
/// 发货通知请求
/// 发货通知结果
Task PostOrderShippingAsync(OrderShippingNotifyRequest request);
///
/// 根据订单号获取商户配置
///
/// 订单号
/// 商户配置
WechatPayMerchantConfig GetMerchantByOrderNo(string orderNo);
///
/// 解析微信回调XML数据
///
/// XML数据
/// 回调数据对象
WechatNotifyData ParseNotifyXml(string xmlData);
///
/// 生成回调响应XML
///
/// 返回码
/// 返回消息
/// XML字符串
string GenerateNotifyResponseXml(string returnCode, string returnMsg);
}