Exemplo n.º 1
0
Arquivo: WX.cs Projeto: kkwkk/ybyzt
    //获取微信config接口所需参数
    public jsapi_ticket getWXconfig(string JSon, string version)
    {
        string appId     = string.Empty;
        string timestamp = string.Empty;
        string nonceStr  = string.Empty;
        string signature = string.Empty;
        string CompID    = string.Empty;
        string url       = string.Empty;

        try
        {
            JsonData JInfo = JsonMapper.ToObject(JSon);
            if (JInfo.Count > 0 && JInfo["CompID"].ToString() != "" && JInfo["url"].ToString() != "")
            {
                CompID = JInfo["CompID"].ToString().Trim();
                url    = JInfo["url"].ToString().Trim();
            }
            //获取核心企业维护的appid和secret
            //List<Hi.Model.Pay_PayWxandAli> list_paywx = new Hi.BLL.Pay_PayWxandAli().GetList("", "CompID = " + CompID + " and wx_Isno = 1 ", "");
            //if (list_paywx == null || list_paywx.Count <= 0 || ClsSystem.gnvl(list_paywx[0].wx_appid, "") == "" || ClsSystem.gnvl(list_paywx[0].wx_appsechet, "") == "")
            //    return new jsapi_ticket() { Result = "F", Description = "公众号配置信息不足" };

            appId = AppID;
            string secret = AppSecret;
            string token  = getWXtoken(appId, secret);
            string ticket = getJSTicketTicket(token);
            int    num    = url.IndexOf("#");
            if (num > 0)
            {
                url = url.Substring(0, num);
            }
            //url = HttpContext.Current.Request.Url.AbsoluteUri.ToString();
            nonceStr  = createNonceStr();
            timestamp = ConvertDateTimeInt(DateTime.Now).ToString();

            string[] ArrayList = { "jsapi_ticket=" + ticket, "timestamp=" + timestamp, "noncestr=" + nonceStr, "url=" + url };
            Array.Sort(ArrayList);
            signature = string.Join("&", ArrayList);
            signature = FormsAuthentication.HashPasswordForStoringInConfigFile(signature, "SHA1").ToLower();
            jsapi_ticket result = new jsapi_ticket();
            result.Result      = "T";
            result.Description = "获取成功";
            result.appId       = appId;
            result.timestamp   = timestamp;
            result.nonceStr    = nonceStr;
            result.signature   = signature;
            return(result);
        }
        catch (Exception ex)
        {
            Common.CatchInfo(ex.Message + ":" + ex.StackTrace, "getWXconfig:");
            return(new jsapi_ticket()
            {
                Result = "F", Description = "参数异常"
            });
        }
    }
Exemplo n.º 2
0
        protected string Get_jsapi_ticket()
        {
            string    access_token = Get_token();
            string    url          = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=" + access_token;
            WebClient wc           = new WebClient();

            wc.Credentials = CredentialCache.DefaultCredentials;
            wc.Encoding    = Encoding.UTF8;
            string       returnText = wc.DownloadString(url);
            jsapi_ticket at         = JsonHelper.ParseFromJson <jsapi_ticket>(returnText);

            if (returnText.Contains("errcode"))
            {
                //可能发生错误
            }
            return(at._ticket);//返回的值里面包含access_token,这个值应该每7200秒获取一次
        }
Exemplo n.º 3
0
        protected string Get_jsapi_ticket()
        {
            // string sqlstring = "select Access_token_time,Access_token from AToken";
            // DataSet tokends = SqlUtils.MSSQLHelper.Query(sqlstring);
            jsapi_ticket at = new jsapi_ticket();
            // if (tokends.Tables[0].Rows.Count > 0)
            //   {
            //string timestamp = GetTimeStamp();
            //if (Convert.ToInt32(tokends.Tables[0].Rows[0][0]) - Convert.ToInt32(timestamp) > 7100)
            //{//更新数据库的token值,理论上不会存在在这个页面呆2个小时的,这里可以不用刷新
            //}
            //else
            //{
            // string access_token = Get_token();
            string    url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=" + Session["token"].ToString();
            WebClient wc  = new WebClient();

            wc.Credentials = CredentialCache.DefaultCredentials;
            wc.Encoding    = Encoding.UTF8;
            string returnText = wc.DownloadString(url);

            at = JsonHelper.ParseFromJson <jsapi_ticket>(returnText);


            //    }

            //  }
            //else {//数据库这个字段的值为空,则新增数据。但是在api测试阶段,这个值

            //}
            //if (returnText.Contains("errcode"))
            //{
            //    //可能发生错误
            //}
            return(at._ticket);//返回的值里面包含access_token,这个值应该每7200秒获取一次
        }