2026-03-18 13:47:34 +08:00

262 lines
5.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; }
}
/// <summary>
/// 微信登录输出参数
/// </summary>
public class WeChatLoginOutput
{
/// <summary>
/// OpenId
/// </summary>
public string Openid { get; set; }
/// <summary>
/// 会话密钥
/// </summary>
public string SessionKey { get; set; }
/// <summary>
/// 访问令牌
/// </summary>
public string AccessToken { get; set; }
/// <summary>
/// 刷新令牌
/// </summary>
public string RefreshToken { get; set; }
/// <summary>
/// 过期时间
/// </summary>
public int ExpiresIn { get; set; }
/// <summary>
/// 用户信息
/// </summary>
public object UserInfo { get; set; }
}
/// <summary>
/// 微信注册输入参数
/// </summary>
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; }
}
/// <summary>
/// 微信注册输出参数
/// </summary>
public class WeChatRegisterOutput
{
/// <summary>
/// 用户ID
/// </summary>
public long UserId { get; set; }
/// <summary>
/// 昵称
/// </summary>
public string Nickname { get; set; }
/// <summary>
/// 头像URL
/// </summary>
public string AvatarUrl { get; set; }
/// <summary>
/// 注册时间
/// </summary>
public DateTime RegisterTime { get; set; }
}
/// <summary>
/// 微信重置密码输入参数
/// </summary>
public class WeChatResetPasswordInput
{
/// <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>
public string? Email { get; set; }
/// <summary>
/// 短信验证码 (可选)
/// </summary>
public string? SmsCode { get; set; }
}
/// <summary>
/// 微信重置密码输出参数
/// </summary>
public class WeChatResetPasswordOutput
{
/// <summary>
/// 重置令牌
/// </summary>
public string ResetToken { get; set; }
/// <summary>
/// 过期时间
/// </summary>
public DateTime ExpireTime { get; set; }
/// <summary>
/// 发送渠道 (email/sms)
/// </summary>
public string SendChannel { get; set; }
}
/// <summary>
/// 微信用户信息
/// </summary>
public class WeChatUserInfo
{
/// <summary>
/// OpenId
/// </summary>
public string OpenId { get; set; }
/// <summary>
/// 昵称
/// </summary>
public string NickName { get; set; }
/// <summary>
/// 性别
/// </summary>
public int Gender { get; set; }
/// <summary>
/// 城市
/// </summary>
public string City { get; set; }
/// <summary>
/// 省份
/// </summary>
public string Province { get; set; }
/// <summary>
/// 国家
/// </summary>
public string Country { get; set; }
/// <summary>
/// 头像URL
/// </summary>
public string AvatarUrl { get; set; }
/// <summary>
/// UnionId
/// </summary>
public string UnionId { get; set; }
/// <summary>
/// 水印
/// </summary>
public Watermark Watermark { get; set; }
}
/// <summary>
/// 水印信息
/// </summary>
public class Watermark
{
/// <summary>
/// 时间戳
/// </summary>
public long Timestamp { get; set; }
/// <summary>
/// AppId
/// </summary>
public string Appid { get; set; }
}