zhaolei
9 days ago 921de2254ff5712a44ed8575ee8efe34252f6603
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
using Prow.OAuth;
#if !NETSTANDARD2_0
using System.Text.Json;
#else
using Newtonsoft.Json.Linq;
#endif
 
namespace Prow.WeChatAuth
{
    /// <summary>
    /// 微信用户信息实体类
    /// </summary>
    public class WeChatUser : OAuthUser
    {
        /// <summary>
        /// 获得/设置 普通用户性别,1为男性,2为女性
        /// </summary>
        public string Sex { get; set; } = "男";
 
        /// <summary>
        /// 获得/设置 普通用户个人资料填写的省份
        /// </summary>
        public string Province { get; set; } = "";
 
        /// <summary>
        /// 获得/设置 普通用户个人资料填写的城市
        /// </summary>
        public string City { get; set; } = "";
 
        /// <summary>
        /// 获得/设置 国家,如中国为CN
        /// </summary>
        public string Country { get; set; } = "";
 
        /// <summary>
        /// 获得/设置 用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。
        /// </summary>
        public string UnionId { get; set; } = "";
    }
 
    /// <summary>
    /// 微信用户扩展操作类
    /// </summary>
    public static class WeChatUserExtensions
    {
        /// <summary>
        /// 格式化为微信用户方法
        /// </summary>
        /// <param name="element"></param>
        /// <returns></returns>
#if !NETSTANDARD2_0
        public static WeChatUser ToWeChatUser(this JsonElement element)
        {
            var user = new WeChatUser();
            var target = element.EnumerateObject();
            user.Id = target.TryGetValue("openid");
            user.Login = target.TryGetValue("openid");
            user.Name = target.TryGetValue("nickname");
            user.Avatar_Url = target.TryGetValue("headimgurl");
 
            user.Province = target.TryGetValue("province");
            user.City = target.TryGetValue("city");
            user.Sex = target.TryGetValue("sex") == "1" ? "男" : "女";
            user.Country = target.TryGetValue("country");
            user.UnionId = target.TryGetValue("unionid");
            return user;
        }
#else
        public static WeChatUser ToWeChatUser(this JObject element)
        {
            var user = new WeChatUser();
            user.Id = element.Value<string>("openid");
            user.Login = element.Value<string>("openid");
            user.Name = element.Value<string>("nickname");
            user.Avatar_Url = element.Value<string>("headimgurl");
 
            user.Province = element.Value<string>("province");
            user.City = element.Value<string>("city");
            user.Sex = element.Value<string>("sex") == "1" ? "男" : "女";;
            user.Country = element.Value<string>("country");
            user.UnionId = element.Value<string>("unionid");
            return user;
        }
#endif
    }
}