using MiAssessment.Model.Models.Auth; using MiAssessment.Model.Models.Payment; namespace MiAssessment.Core.Interfaces; /// /// 微信服务接口 /// public interface IWechatService { /// /// 获取微信openid和unionid /// /// 微信授权code /// 微信认证结果 Task GetOpenIdAsync(string code); /// /// 获取微信授权的手机号 /// /// 微信授权code /// 微信手机号结果 Task GetMobileAsync(string code); /// /// 获取小程序接口调用凭证(access_token) /// /// 小程序AppId(可选,不传则使用默认配置) /// access_token,失败返回null Task GetAccessTokenAsync(string? appId = null); /// /// 创建支付订单(原生微信支付) /// /// 支付请求 /// 支付结果,包含前端调用 uni.requestPayment 所需的参数 Task CreatePayOrderAsync(CreatePayRequest request); } /// /// 创建支付请求 /// public class CreatePayRequest { /// /// 用户ID /// public int UserId { get; set; } /// /// 用户OpenId /// public string OpenId { get; set; } = string.Empty; /// /// 支付金额(元) /// public decimal Price { get; set; } /// /// 商品标题 /// public string Title { get; set; } = string.Empty; /// /// 附加数据(订单类型) /// public string Attach { get; set; } = string.Empty; /// /// 订单号前缀 /// public string Prefix { get; set; } = "MH_"; } /// /// 创建支付结果 /// public class CreatePayResult { /// /// 状态:1=成功,0=失败 /// public int Status { get; set; } /// /// 错误消息 /// public string? Message { get; set; } /// /// 订单号 /// public string OrderNo { get; set; } = string.Empty; /// /// 支付参数(返回给前端,用于调用 uni.requestPayment) /// public NativePayParams? Res { get; set; } } /// /// 原生微信支付参数(用于 uni.requestPayment) /// public class NativePayParams { /// /// 小程序AppId /// public string AppId { get; set; } = string.Empty; /// /// 时间戳(秒) /// public string TimeStamp { get; set; } = string.Empty; /// /// 随机字符串 /// public string NonceStr { get; set; } = string.Empty; /// /// 统一下单接口返回的 prepay_id(格式:prepay_id=xxx) /// public string Package { get; set; } = string.Empty; /// /// 签名类型 /// public string SignType { get; set; } = "MD5"; /// /// 签名 /// public string PaySign { get; set; } = string.Empty; } /// /// Web支付参数(客服消息支付,备用) /// public class WebPayParams { /// /// 支付数据 /// public WebPayData? Data { get; set; } /// /// 请求支付URL /// public string RequestPay { get; set; } = string.Empty; /// /// 提示信息 /// public string Tips { get; set; } = string.Empty; } /// /// Web支付数据 /// public class WebPayData { /// /// 订单号 /// public string OrderNum { get; set; } = string.Empty; }