zoukankan      html  css  js  c++  java
  • 微信开发-微信一般帮助类

    微信开发-微信一般帮助类

    public class CommonUtil
        {
            #region 微信相关帮助
    
            /// <summary>
            /// 生成指定长度的签名的随机串
            /// </summary>
            /// <param name="length"></param>
            /// <returns></returns>
            public static String CreateNoncestr(int length)
            {
                String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                String res = "";
                Random rd = new Random();
                for (int i = 0; i < length; i++)
                {
                    res += chars[rd.Next(chars.Length - 1)];
                }
                return res;
            }
    
            /// <summary>
            /// 生成签名的随机串
            /// </summary>
            /// <returns></returns>
            public static String CreateNoncestr()
            {
                String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                String res = "";
                Random rd = new Random();
                for (int i = 0; i < 16; i++)
                {
                    res += chars[rd.Next(chars.Length - 1)];
                }
                return res;
            }
    
            /// <summary>
            /// 生成签名的时间戳
            /// </summary>
            /// <returns></returns>
            public static String CreateTimeStamp()
            {
                return ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000).ToString();
            }
    
            /// <summary>
            /// 获取微信JS接口的临时票据
            /// </summary>
            /// <param name="jsTicketUrl">js ticket url</param>
            /// <param name="accessToken">微信的accesstoken</param>
            /// <returns></returns>
            public static String CreateJsTicket(string jsTicketUrl, string accessToken)
            {
                string ticketUrl = string.Format(jsTicketUrl, accessToken);
                string result =WebHttpHelper.CreateWebrequest(ticketUrl);
                IHashObject obj = Carpa.Web.Ajax.JavaScriptSerializer.CreateInstance().DeserializeObject(result) as IHashObject;
                if (obj.Count > 0)
                {
                    if (obj.GetValue("errcode", "").Equals("0"))
                    {
                        return obj.GetValue("ticket", "");
                    }
                }
                return "";
            }
    
            /// <summary>
            /// 生成 wx config签名;参与签名的参数如下(jsapi_ticket,noncestr,&timestamp,url-当前请求的url)
            /// </summary>
            /// <param name="dic"></param>
            /// <returns></returns>
            public static String CreateSignature(Dictionary<string, string> dic)
            {
                //字典排序
                var dictemp = dic.OrderBy(d => d.Key);
                #region 生成url字符串
                StringBuilder str = new StringBuilder();
                foreach (var item in dictemp)
                {
                    str.AppendFormat("{0}={1}&", item.Key, item.Value);
                }
                #endregion
                var temp = str.ToString().Trim('&');
                return Util.Sha1(temp);
            }
    
            /// <summary>
            /// 网页授权认证获取用户的opneid
            /// </summary>
            /// <param name="url">授权地址</param>
            /// <param name="appId">appid</param>
            /// <param name="appKey">appid</param>
            /// <param name="code">授权获取的code</param>
            /// <returns></returns>
            public static String GetOpenIdByOauth(string url, string appId, string appKey, string code)
            {
                string aUrl = string.Format(url, appId, appKey, code);
                string result = WebHttpHelper.CreateWebrequest(aUrl);
                IHashObject obj = Carpa.Web.Ajax.JavaScriptSerializer.CreateInstance().DeserializeObject(result) as IHashObject;
                if (obj.Count > 0)
                {
                    if (obj.GetValue("openid", "") != "")
                    {
                        return obj.GetValue("openid", "");
                    }
                }
                return "";
            }
    
            #endregion
        }
  • 相关阅读:
    浅谈Linux文件操作
    数据结构学习--队列
    CODE[VS] 1099 字串变换
    CODE[VS] 1026 逃跑的拉尔夫
    CODE[VS] 3027 线段覆盖 2
    LeetCode8.字符串转换整数(atoi) JavaScript
    JS实现继承 JavaScript
    LeetCode7.整数反转 JavaScript
    LeetCode6.Z字形变换 JavaScript
    LeetCode5.最长回文子串 JavaScript
  • 原文地址:https://www.cnblogs.com/tiggerinchengdu/p/4511974.html
Copyright © 2011-2022 走看看