Exemple #1
0
        /// <summary>
        /// 调用租户接口推送数据
        /// </summary>
        /// <param name="url">租户接口url</param>
        /// <param name="type">修改值</param>
        /// <param name="value">修改类型</param>
        /// <param name="msg">文字说明</param>
        /// <param name="appId">应用接入id</param>
        /// <param name="appSecret">密钥</param>
        /// <returns></returns>
        public string PostDataUrl(string url, int type, int value, string msg, string appSecret, string studentNo, string projectCode, int classId)
        {
            string result     = string.Empty;
            string postString = string.Empty;


            try
            {
                string timeStamp = GetTimeStamp().ToString();                 //时间戳
                string nonce     = new Random().NextDouble().ToString();      //随机数
                string signature = GetSignature(appSecret, timeStamp, nonce); //签名加密字符串


                System.Net.WebClient WebClientObj = new System.Net.WebClient();
                WebClientObj.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
                NameValueCollection PostVars = new NameValueCollection();
                postString = "type=" + HttpUtility.UrlEncode(type.ToString(), UTF8Encoding.UTF8) + "&value=" + HttpUtility.UrlEncode(value.ToString(), UTF8Encoding.UTF8) + "&message=" + HttpUtility.UrlEncode(msg, UTF8Encoding.UTF8) + "&signature=" + HttpUtility.UrlEncode(signature, UTF8Encoding.UTF8) + "&timestamp=" + HttpUtility.UrlEncode(timeStamp, UTF8Encoding.UTF8) + "&nonce=" + HttpUtility.UrlEncode(nonce, UTF8Encoding.UTF8) + "&studentno=" + HttpUtility.UrlEncode(studentNo, UTF8Encoding.UTF8) + "&projectcode=" + HttpUtility.UrlEncode(projectCode, UTF8Encoding.UTF8) + "&classsid=" + HttpUtility.UrlEncode(classId.ToString(), UTF8Encoding.UTF8);
                byte[] postData     = Encoding.UTF8.GetBytes(postString);
                byte[] responseData = WebClientObj.UploadData(url, "POST", postData);
                result = Encoding.UTF8.GetString(responseData);

                CommLog.WriteSystemLog("推送结果result=" + result + ";posturl=" + url + "?" + postString);
            }
            catch (Exception ex)
            {
                CommLog.WriteExceptionLog("调用租户接口推送数据时出现异常:" + ex.Message + ";posturl=" + url + "?" + postString);
                result = string.Empty;
            }
            return(result);
        }
Exemple #2
0
        /// <summary>
        /// 推送成功或失败后,更新NetInterface记录状态
        /// </summary>
        /// <param name="type">1发送成功 0发送失败</param>
        /// <param name="id">记录id</param>
        /// <param name="sendTimes">发送次数</param>
        public void UpdateSendStatus(int type, long id, int sendTimes)
        {
            string sqlStr = string.Empty;

            try
            {
                if (type == 1)
                {
                    //发送成功
                    if (sendTimes == 0)
                    {
                        //首次发送
                        sqlStr = string.Format("update dbo.NetInterface set [Status]=1,SendTime='{0}',SendTimes=1 where Id={1}", DateTime.Now.ToString(), id);
                    }
                    else
                    {
                        //重复发送
                        sqlStr = string.Format("update dbo.NetInterface set [Status]=1,UpdateTime='{0}',SendTimes=SendTimes+1 where Id={1}", DateTime.Now.ToString(), id);
                    }
                }
                else
                {
                    //发送失败
                    if (sendTimes == 0)
                    {
                        //发送次数加1 修改发送时间
                        sqlStr = string.Format("update dbo.NetInterface set SendTime='{0}',SendTimes=1 where Id={1}", DateTime.Now.ToString(), id);
                    }
                    else
                    {
                        if (sendTimes < 2)
                        {
                            //发送次数加1 修改更新时间
                            sqlStr = string.Format("update dbo.NetInterface set UpdateTime='{0}',SendTimes=SendTimes+1 where Id={1}", DateTime.Now.ToString(), id);
                        }
                        else
                        {
                            //发送次数加1,修改更新时间,将状态置为2
                            sqlStr = string.Format("update dbo.NetInterface set [Status]=2,UpdateTime='{0}',SendTimes=SendTimes+1 where Id={1}", DateTime.Now.ToString(), id);
                        }
                    }
                }

                SqlHelper.ExecuteNonQuery(SqlHelper.connString, CommandType.Text, sqlStr);
            }
            catch (Exception ex)
            {
                CommLog.WriteExceptionLog("推送成功或失败后,更新NetInterface记录状态时出现异常:" + ex.Message + ";  sql=" + sqlStr);
            }
        }
Exemple #3
0
        /// <summary>
        /// 根据租户id获取租户的回调所需的信息
        /// </summary>
        /// <param name="tenantId"></param>
        /// <returns></returns>
        public DataTable GetCallbackParams(int tenantId)
        {
            DataTable dt     = null;
            string    sqlStr = string.Empty;

            try
            {
                sqlStr = string.Format("select top 1 TokenUrl,AesKey from dbo.NetTenant with(nolock) where IsDelete=0 and Id={0} Order by Id desc", tenantId);
                dt     = SqlHelper.ExecuteTable(SqlHelper.connString, sqlStr);
            }
            catch (Exception ex)
            {
                CommLog.WriteExceptionLog("根据租户id获取租户的回调所需的信息时出现异常:" + ex.Message + "; sql=" + sqlStr);
                dt = null;
            }
            return(dt);
        }
Exemple #4
0
        /// <summary>
        /// 获取需要回调的前100条记录
        /// </summary>
        /// <returns></returns>
        public DataTable GetCallbackRecords()
        {
            DataTable dt     = null;
            string    sqlStr = string.Empty;

            try
            {
                sqlStr = "select top 100 * from dbo.NetInterface with(nolock) where [Status]=0 and SendTimes<3 order by Id asc";
                dt     = SqlHelper.ExecuteTable(SqlHelper.connString, sqlStr);
            }
            catch (Exception ex)
            {
                CommLog.WriteExceptionLog("获取需要回调的前100条记录时出现异常:" + ex.Message + ";  sql=" + sqlStr);
                dt = null;
            }
            return(dt);
        }