using System.ComponentModel.DataAnnotations;
namespace SimpleAdmin.Api.WeChat.Dtos;
public class WxLoginQrcodeOutput
{
/// PC 端轮询用的扫码 key(与二维码 scene 一致)。
public string LoginKey { get; set; } = string.Empty;
public string QrCodeUrl { get; set; } = string.Empty;
public int ExpiresIn { get; set; } = 600;
}
/// H5 网页授权所需公开配置(不含 Secret/Token)。
public class WxOAuthConfigOutput
{
/// 公众号 AppId(来自其他配置 wechat_mp.AppKey)。
public string AppId { get; set; } = string.Empty;
///
/// OAuth 回调根地址(来自 wechat_mp.BaseUrl),如 https://ideship.com。
/// 为空时前端回退到当前页面 origin。
///
public string? OAuthRedirectBase { get; set; }
}
/// 引导关注公众号:优先返回可直接跳转的公众号链接。
public class WxFollowQrcodeOutput
{
/// 微信内 location 跳转用(公众号主页 / 名片 / 引导图文)。
public string JumpUrl { get; set; } = string.Empty;
/// 兼容旧字段;与 JumpUrl 相同。
public string QrCodeUrl { get; set; } = string.Empty;
/// scene_str,固定 oms_follow(仅当走扫码兜底时有意义)。
public string Scene { get; set; } = "oms_follow";
}
public class WxLoginStatusOutput
{
public bool Ready { get; set; }
public string? Account { get; set; }
}
public class WeChatOAuthCodeInput
{
[Required]
public string Code { get; set; } = string.Empty;
}
public class WeChatOAuthUserInfoOutput
{
public string Openid { get; set; } = string.Empty;
public string? Nickname { get; set; }
public int Sex { get; set; }
public string? Province { get; set; }
public string? City { get; set; }
public string? Country { get; set; }
public string? Headimgurl { get; set; }
public string? Unionid { get; set; }
public bool AlreadyBound { get; set; }
}
public class WeChatProfileInput
{
[Required]
public string Openid { get; set; } = string.Empty;
public string? Nickname { get; set; }
public string? Avatar { get; set; }
public string? Unionid { get; set; }
}
public class WeChatCustomerRegisterInput
{
public string? CustomerCode { get; set; }
[Required]
public string CustomerName { get; set; } = string.Empty;
/// 可选;下单前再补全。
[StringLength(16)]
public string? Phone { get; set; }
/// 可选;下单前再补全。
[EmailAddress]
[StringLength(64)]
public string? Email { get; set; }
[Required]
[MinLength(6)]
public string Password { get; set; } = string.Empty;
///
/// 邀请码(可选)。来自邀请链接 / 二维码 ?ref=,注册时一次性绑定引荐人。
///
public string? InviteCode { get; set; }
///
/// 顾问邀请码(可选)。来自 ?advisor=,值为员工登录账号;注册时写入所属顾问 CustomerService。
///
public string? AdvisorCode { get; set; }
///
/// 渠道代理编号(可选)。来自 ?agent=;有值时不走 C2C 邀请。
///
public string? AgentCode { get; set; }
[Required]
public WeChatProfileInput Wechat { get; set; } = new();
}
public class WeChatCustomerRegisterOutput
{
public string CustomerCode { get; set; } = string.Empty;
}
public class WeChatCustomerBindInput
{
[Required]
public string Account { get; set; } = string.Empty;
[Required]
public string Password { get; set; } = string.Empty;
[Required]
public WeChatProfileInput Wechat { get; set; } = new();
}