protected override Dictionary <string, string> BuildGetUserInfoParams(DefaultAccessTokenModel accessTokenModel)
        {
            var timestamp = DingTalkSignTool.GetTimestamp();
            var sign      = DingTalkSignTool.Sign(timestamp, oauthConfig.AppKey);

            return(new Dictionary <string, string>
            {
                ["accessKey"] = oauthConfig.AppId,
                ["timestamp"] = timestamp,
                ["signature"] = sign
            });
        }
 private static string ToQueryString(Dictionary <string, string> dict)
 {
     return(string.Join("&", dict.Select(p => $"{DingTalkSignTool.UrlEncode(p.Key)}={DingTalkSignTool.UrlEncode(p.Value)}")));
 }