2026-03-14 06:13:06 +08:00

134 lines
3.3 KiB
C#

using System.ComponentModel.DataAnnotations;
namespace YD_Event.Application.Client.Dtos;
public class WeChatLoginInput
{
/// <summary>
/// 微信临时授权码
/// </summary>
[Required(ErrorMessage = "code不能为空")]
public string Code { get; set; }
/// <summary>
/// 加密数据
/// </summary>
[Required(ErrorMessage = "encryptedData不能为空")]
public string EncryptedData { get; set; }
/// <summary>
/// 初始向量
/// </summary>
[Required(ErrorMessage = "iv不能为空")]
public string Iv { get; set; }
/// <summary>
/// 原始数据
/// </summary>
[Required(ErrorMessage = "rawData不能为空")]
public string RawData { get; set; }
/// <summary>
/// 签名
/// </summary>
[Required(ErrorMessage = "signature不能为空")]
public string Signature { get; set; }
}
public class WeChatLoginOutput
{
public string Openid { get; set; }
public string SessionKey { get; set; }
public string AccessToken { get; set; }
public string RefreshToken { get; set; }
public int ExpiresIn { get; set; }
public object UserInfo { get; set; } // 简化的用户信息对象
}
public class WeChatRegisterInput
{
/// <summary>
/// OpenId
/// </summary>
[Required(ErrorMessage = "openid不能为空")]
public string Openid { get; set; }
/// <summary>
/// 加密数据
/// </summary>
[Required(ErrorMessage = "encryptedData不能为空")]
public string EncryptedData { get; set; }
/// <summary>
/// 初始向量
/// </summary>
[Required(ErrorMessage = "iv不能为空")]
public string Iv { get; set; }
/// <summary>
/// 原始数据
/// </summary>
[Required(ErrorMessage = "rawData不能为空")]
public string RawData { get; set; }
/// <summary>
/// 签名
/// </summary>
[Required(ErrorMessage = "signature不能为空")]
public string Signature { get; set; }
/// <summary>
/// 邀请码 (可选)
/// </summary>
public string? InviteCode { get; set; }
}
public class WeChatRegisterOutput
{
public long UserId { get; set; }
public string Nickname { get; set; }
public string AvatarUrl { get; set; }
public DateTime RegisterTime { get; set; }
}
public class WeChatResetPasswordInput
{
[Required(ErrorMessage = "openid不能为空")]
public string Openid { get; set; }
[Required(ErrorMessage = "encryptedData不能为空")]
public string EncryptedData { get; set; }
[Required(ErrorMessage = "iv不能为空")]
public string Iv { get; set; }
public string? Email { get; set; }
public string? SmsCode { get; set; }
}
public class WeChatResetPasswordOutput
{
public string ResetToken { get; set; }
public DateTime ExpireTime { get; set; }
public string SendChannel { get; set; } // "email" or "sms"
}
public class WeChatUserInfo
{
public string OpenId { get; set; }
public string NickName { get; set; }
public int Gender { get; set; }
public string City { get; set; }
public string Province { get; set; }
public string Country { get; set; }
public string AvatarUrl { get; set; }
public string UnionId { get; set; }
public Watermark Watermark { get; set; }
}
public class Watermark
{
public long Timestamp { get; set; }
public string Appid { get; set; }
}