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