using MiAssessment.Model.Models.Payment;
namespace MiAssessment.Core.Interfaces;
///
/// 支付回调服务接口
///
public interface IPaymentNotifyService
{
///
/// 处理微信支付回调(自动识别 V2/V3 格式)
///
/// 回调请求体
/// 回调请求头(V3 需要用于签名验证)
/// 回调处理结果
Task HandleWechatNotifyAsync(string notifyBody, WechatPayNotifyHeaders? headers = null);
///
/// 处理微信支付 V2 回调(XML 格式)
///
/// 微信回调XML数据
/// 回调处理结果
Task HandleWechatV2NotifyAsync(string xmlData);
///
/// 处理微信支付 V3 回调(JSON 格式)
///
/// 微信回调JSON数据
/// 回调请求头
/// 回调处理结果
Task HandleWechatV3NotifyAsync(string jsonData, WechatPayNotifyHeaders headers);
///
/// 检查订单是否已处理(幂等性检查)
///
/// 订单号
/// 是否已处理
Task IsOrderProcessedAsync(string orderNo);
///
/// 记录支付回调通知
///
/// 订单号
/// 回调数据
/// 是否记录成功
Task RecordNotifyAsync(string orderNo, WechatNotifyData notifyData);
///
/// 更新订单通知状态
///
/// 订单号
/// 状态:0-待处理 1-处理成功 2-处理失败
/// 处理消息
/// 是否更新成功
Task UpdateNotifyStatusAsync(string orderNo, byte status, string? message = null);
}