public AlipayPrec_MY() //获取小区、项目信息 { base.Token = "20160804AlipayPrec"; c = new Config(); c.notify_url = Global_Fun.AppWebSettings("AliPayPrec_Notify_Url").ToString(); //c.notify_url = "http://125.64.16.10:9999/TWInterface/Service/AlipayCallBack/AliPayPrec.ashx"; }
private string GetCommunityList(DataRow row) { if (!row.Table.Columns.Contains("CorpID") || string.IsNullOrEmpty(row["CorpID"].ToString())) { return(JSONHelper.FromString(false, "公司编号不能为空")); } using (IDbConnection conn = new SqlConnection(Global_Fun.Tw2bsConnectionString("1"))) { dynamic dbInfo = conn.Query(@"SELECT DBServer,DBName,DBUser,DBPwd FROM Tb_System_Corp WHERE CorpID=@CorpID", new { CorpID = row["CorpID"].ToString() }).FirstOrDefault(); if (dbInfo != null) { Tb_Community community = new Tb_Community() { DBServer = dbInfo.DBServer, DBName = dbInfo.DBName, DBUser = dbInfo.DBUser, DBPwd = dbInfo.DBPwd }; using (IDbConnection conn2 = new SqlConnection(GetConnectionStringStr(community))) { IEnumerable <dynamic> resultSet = conn2.Query(@"SELECT CommID,CommName FROM Tb_HSPR_Community WHERE isnull(IsDelete,0)=0"); return(new ApiResult(true, resultSet).toJson()); } } return(JSONHelper.FromString(false, "未查询到公司信息")); } }
/// <summary> /// /// </summary> /// <param name="BussId"></param> /// <param name="out_trade_no"></param> /// <param name="txnTime"></param> /// <param name="total_fee"></param> /// <param name="R"></param> /// <param name="prepay_str"></param> /// <param name="WPD"></param> /// <returns></returns> public string GenerateBankOrder(string BussId, string out_trade_no, string txnTime, int total_fee, ref bool R, ref WxPayData WPD, WxPayConfig wxPayConfig, string subject = "") { R = false; //统一下单 WxPayData data = new WxPayData(); data.SetValue("body", string.IsNullOrEmpty(subject) ? "商品购买" : subject); data.SetValue("attach", BussId.ToString()); data.SetValue("out_trade_no", out_trade_no); data.SetValue("total_fee", total_fee); data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss")); data.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss")); data.SetValue("notify_url", Global_Fun.AppWebSettings("WechatPayBuss_Notify_Url").ToString()); data.SetValue("trade_type", "APP"); WxPayData result = WxPayApi.UnifiedOrder(data, wxPayConfig); if (!result.IsSet("appid") || !result.IsSet("prepay_id") || result.GetValue("prepay_id").ToString() == "") { R = false; return("UnifiedOrder response error"); } R = true; WPD = result; return("SUCCESS"); }
/// <summary> /// 预缴信息 /// </summary> private string GetCustomerType8(string CustID, string CommID, int Start, int End, int Size) { var chargeConnString = Global_Fun.BurstConnectionString(AppGlobal.StrToInt(CommID), Global_Fun.BURST_TYPE_CHARGE); using (var conn = new SqlConnection(chargeConnString)) { var sql = @"SELECT COUNT(*) FROM Tb_HSPR_PreCostsDetail a WHERE PrecAmount>0 AND ISNULL(IsDelete,0)=0 AND CommID=@CommID AND CustID=@CustID"; long count = conn.QueryFirstOrDefault <long>(sql, new { CommID, CustID }); long pageRes = count % Size > 0 ? (count / Size) + 1 : count / Size; long countRes = count; var FeesList = conn.Query(@"SELECT CostName,RoomSign,PrecAmount,PrecMemo,ParkNames,isnull(NewPrecAmount,0) AS NewPrecAmount FROM(SELECT *,ROW_NUMBER () OVER ( ORDER BY CustID DESC ) AS RowId FROM view_HSPR_PreCostsDetail_Filter a WHERE PrecAmount>0 AND ISNULL(IsDelete,0)=0 AND CommID = @CommID AND CustID = @CustID ) AS a WHERE RowId BETWEEN @Start AND @END" , new { CommID = CommID, CustID = CustID, Start = Start, End = End }).ToList(); return(new ApiPageResult(true, FeesList, pageRes, countRes).toJson()); } }
/// <summary> /// 小区是否支持红色物业 /// </summary> /// <param name="row"></param> /// <param name="trans"></param> /// <returns></returns> private string CheckRedWuYeInfo(DataRow row, Transfer trans) { string result = "0"; if (!row.Table.Columns.Contains("CommunityId") && String.IsNullOrEmpty(row["CommunityId"].ToString())) { return(result); } string CommunityId = row["CommunityId"].ToString(); string sql = string.Format("select CommID from Tb_Community where Id='{0}'", row["CommunityId"].ToString()); DataTable dTable = new DbHelperSQLP(PubConstant.GetConnectionString("UnifiedConnectionString")).Query(sql.ToString()).Tables[0]; if (dTable.Rows.Count > 0) { string CommID = dTable.Rows[0]["CommID"].ToString(); if (!string.IsNullOrEmpty(CommID)) { string haveRedWuYe = Global_Fun.AppWebSettings("HaveRedWuYeCommID").ToString(); if (!string.IsNullOrEmpty(haveRedWuYe)) { if (haveRedWuYe.Contains(CommunityId)) { result = "1"; } } } } return(result); }
/// <summary> /// 分页下载任务标准 /// </summary> private string DownloadTaskStandardWithPager(DataRow row) { if (!row.Table.Columns.Contains("CommID") || string.IsNullOrEmpty(row["CommID"].ToString())) { return(JSONHelper.FromString(false, "小区id不能为空")); } if (!row.Table.Columns.Contains("TaskId") || string.IsNullOrEmpty(row["TaskId"].ToString())) { return(JSONHelper.FromString(false, "任务id不能为空")); } var taskId = row["TaskId"].ToString(); var commId = AppGlobal.StrToInt(row["CommID"].ToString()); var pageSize = TASK_POINT_STANDARD_PAGE_SIZE; var pageIndex = 1; if (row.Table.Columns.Contains("PageSize") && !string.IsNullOrEmpty(row["PageSize"].ToString())) { pageSize = AppGlobal.StrToInt(row["PageSize"].ToString()); } if (row.Table.Columns.Contains("PageIndex") && !string.IsNullOrEmpty(row["PageIndex"].ToString())) { pageIndex = AppGlobal.StrToInt(row["PageIndex"].ToString()); } var connStr = Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_SUPERVISION); using (var conn = new SqlConnection(connStr)) { var sql = $@"SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY a.TaskStandardId) AS RN, CASE c.CheckMethod WHEN 1 THEN a.ProfessionalLine WHEN 2 THEN a.CategoryDimension WHEN 3 THEN a.Department ELSE '' END AS ScoreItemID, a.TaskStandardId,a.TaskId,a.ItemId,a.ItemNameAll,a.StandardId,a.Content,a.CheckScenario,a.CheckMethod, a.SamplingStandard,a.MarkStandard,a.StandardScore,a.IsAllowFloat,a.MaximumFloatingScore,a.DeductionNature, a.ProfessionalLine,a.CategoryDimension,a.Department,a.DeductionScore,a.CheckUserCode,a.CheckUserName, a.CheckDate,a.IsDiscard,'' AS Remark, '' AS Img, g.Sort FROM Tb_Supervision_TaskStandard a WITH(NOLOCK) LEFT JOIN Tb_Supervision_Task b ON a.TaskId=b.TaskId LEFT JOIN { Global_Var.ERPDatabaseName }.dbo.Tb_Supervision_Plan c ON b.PlanId=c.Id LEFT JOIN { Global_Var.ERPDatabaseName }.dbo.Tb_Supervision_CheckStandard_ScoreItem d ON d.Id = a.ProfessionalLine LEFT JOIN { Global_Var.ERPDatabaseName }.dbo.Tb_Supervision_CheckStandard_ScoreItem e ON e.Id = a.CategoryDimension LEFT JOIN { Global_Var.ERPDatabaseName }.dbo.Tb_Supervision_CheckStandard_ScoreItem f ON f.Id = a.Department LEFT JOIN { Global_Var.ERPDatabaseName }.dbo.Tb_Supervision_CheckStandard_CheckItem g ON a.ItemId=g.Id WHERE a.TaskId='{ taskId }' ORDER BY g.Sort ASC ) t WHERE t.RN BETWEEN ({ pageIndex }-1)*{ pageSize }+1 AND { pageIndex }*{ pageSize }" ; var data = conn.Query(sql).ToList(); return(new ApiResult(true, data).toJson()); } }
public static string GetConnection(string CommunityId) { //IDbConnection conn = new SqlConnection(PubConstant.UnifiedContionString.ToString()); //string query = "SELECT * FROM Tb_Community WHERE Id=@id"; //var T = conn.Query<Tb_Community>(query, new { id = CommunityId }).ToList(); //if (T.Count > 0) //{ // return UnionUtil.GetConnectionString(T[0]).ToString(); //} //return ""; return(Global_Fun.GetConnectionString("")); }
/// <summary> /// 分页下载标准的加扣分项 /// </summary> private string DownloadTaskDeductionWithPager(DataRow row) { if (!row.Table.Columns.Contains("CommID") || string.IsNullOrEmpty(row["CommID"].ToString())) { return(JSONHelper.FromString(false, "小区id不能为空")); } if (!row.Table.Columns.Contains("TaskId") || string.IsNullOrEmpty(row["TaskId"].ToString())) { return(JSONHelper.FromString(false, "任务id不能为空")); } var taskId = row["TaskId"].ToString(); var commId = AppGlobal.StrToInt(row["CommID"].ToString()); var pageSize = TASK_POINT_STANDARD_PAGE_SIZE; var pageIndex = 1; if (row.Table.Columns.Contains("PageSize") && !string.IsNullOrEmpty(row["PageSize"].ToString())) { pageSize = AppGlobal.StrToInt(row["PageSize"].ToString()); } if (row.Table.Columns.Contains("PageIndex") && !string.IsNullOrEmpty(row["PageIndex"].ToString())) { pageIndex = AppGlobal.StrToInt(row["PageIndex"].ToString()); } var connStr = Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_SUPERVISION); using (var conn = new SqlConnection(connStr)) { var sql = $@"SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY a.TaskDeductionItemId) AS RN, a.* FROM Tb_Supervision_TaskDeductionItem a WITH(NOLOCK) WHERE a.TaskId='{ taskId }' ) t WHERE t.RN BETWEEN ({ pageIndex }-1)*{ pageSize }+1 AND { pageIndex }*{ pageSize }" ; var data = conn.Query(sql).ToList(); foreach (var deductionItem in data) { var keyId = deductionItem.TaskDeductionItemId; sql = $@"SELECT a.* FROM Tb_Supervision_TaskFiles a WITH(NOLOCK) WHERE TaskId='{ taskId }' AND KeyId='{ keyId }'"; var files = conn.Query(sql).ToList(); deductionItem.Files = files; } return(new ApiResult(true, data).toJson()); } }
private string ReceFees(DataRow row) { #region 获取基本参数 string CommID = string.Empty; if (row.Table.Columns.Contains("CommID")) { CommID = row["CommID"].ToString(); } string RoomID = string.Empty; if (row.Table.Columns.Contains("RoomID")) { RoomID = row["RoomID"].ToString(); } string CustID = string.Empty; if (row.Table.Columns.Contains("CustID")) { CustID = row["CustID"].ToString(); } #endregion #region 计算金额 if (!row.Table.Columns.Contains("PayData") || string.IsNullOrEmpty(row["PayData"].ToString())) { return new ApiResult(false, "缺少参数PayData").toJson(); } string PayData = row["PayData"].ToString(); if (!CheckPayData(Global_Fun.BurstConnectionString(Convert.ToInt32(CommID), Global_Fun.BURST_TYPE_CHARGE), Convert.ToInt64(CustID), Convert.ToInt64(RoomID), PayData, out decimal Amt, out string errMsg, true, false, !"1940".Equals(Global_Var.LoginCorpID))) { return new ApiResult(false, errMsg).toJson(); } if (Amt <= 0.00M) { return new ApiResult(false, "金额必须大于0").toJson(); } #endregion JObject jObj = JObject.Parse(PayData); int Type = (int)jObj["Type"]; if (Type != 1) { return new ApiResult(false, "收费类型有误").toJson(); } JArray Data = (JArray)jObj["Data"]; StringBuilder FeesIds = new StringBuilder(); foreach (JObject item in Data) { FeesIds.Append((string)item["FeesId"] + ","); } if (!PubInfo.ReceFees(Global_Fun.BurstConnectionString(Convert.ToInt32(CommID), Global_Fun.BURST_TYPE_CHARGE), out long ReceID, CommID, CustID, RoomID, FeesIds.ToString(), 0.00M, "员工APP", "扫码支付", Global_Var.UserCode, 1)) { return new ApiResult(false, "下账失败").toJson(); } return new ApiResult(true, "下账成功").toJson(); }
/// <summary> /// 关闭任务 /// </summary> private string CloseTask(DataRow row) { if (!row.Table.Columns.Contains("CommID") || string.IsNullOrEmpty(row["CommID"].ToString())) { return(JSONHelper.FromString(false, "小区id不能为空")); } if (!row.Table.Columns.Contains("TaskId") || string.IsNullOrEmpty(row["TaskId"].ToString())) { return(JSONHelper.FromString(false, "任务id不能为空")); } if (!row.Table.Columns.Contains("TaskType") || string.IsNullOrEmpty(row["TaskType"].ToString())) { return(JSONHelper.FromString(false, "任务类型不能为空")); } if (!row.Table.Columns.Contains("CloseReason") || string.IsNullOrEmpty(row["CloseReason"].ToString())) { return(JSONHelper.FromString(false, "请选择任务关闭原因")); } var commId = AppGlobal.StrToInt(row["CommID"].ToString()); var taskId = row["TaskId"].ToString(); var taskType = row["TaskType"].ToString(); var closeReason = row["CloseReason"].ToString(); var closeRemark = default(string); if (row.Table.Columns.Contains("CloseRemark") && !string.IsNullOrEmpty(row["CloseRemark"].ToString())) { closeRemark = row["CloseRemark"].ToString(); } using (var conn = new SqlConnection(Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_SUPERVISION))) { var sql = $@"UPDATE Tb_Supervision_Task SET IsClose=1,CloseDate=getdate(),CloseUserCode=@CloseUserCode, CloseReason=@CloseReason,CloseRemark=@CloseRemark WHERE TaskId=@TaskId"; int i = conn.Execute(sql, new { CloseUserCode = Global_Var.LoginUserCode, CloseReason = closeReason, CloseRemark = closeRemark, TaskId = taskId }); if (i == 1) { return(JSONHelper.FromString(true, "关闭成功")); } return(JSONHelper.FromString(false, "关闭失败")); } }
/// <summary> /// 获取单个模块详情 /// </summary> /// <returns></returns> /// private string GetSunPropertyTaskDetail(DataRow row) { if (!row.Table.Columns.Contains("CommunityId") || string.IsNullOrEmpty(row["CommunityId"].AsString())) { return(new ApiResult(false, "缺少参数CommunityId").toJson()); } if (!row.Table.Columns.Contains("TaskType") || string.IsNullOrEmpty(row["TaskType"].AsString())) { return(new ApiResult(false, "缺少参数TaskType").toJson()); } var communityId = row["CommunityId"].ToString(); var taskType = row["TaskType"].ToString(); var community = GetCommunity(communityId); if (community == null) { return(JSONHelper.FromString(false, "未查询到小区信息")); } var commId = AppGlobal.StrToInt(community.CommID); PubConstant.tw2bsConnectionString = Global_Fun.Tw2bsConnectionString("1"); PubConstant.hmWyglConnectionString = GetConnectionStr(community); try { var list = new List <TaskDetailInfo>(); switch (taskType) { case "环境巡检": list.AddRange(GetEnviromentTaskRecentlyExecuteInfo(commId)); break; case "设备巡检": list.AddRange(GetEquipmentExecuteInfo(commId)); break; case "安全巡检": list.AddRange(GetSecureExecuteInfo(commId)); break; } return(new ApiResult(true, list).toJson()); } catch (Exception o) { return(new ApiResult(false, o.Message).toJson()); } }
private String GetBusinessOpenStatus() { int result = 0; try { var openStatus = Global_Fun.AppWebSettings("Business_Open"); if (!String.IsNullOrEmpty(openStatus)) { int.TryParse(openStatus, out result); } } catch (Exception ex) { // } return(new ApiResult(true, result).toJson()); }
/// <summary> /// 报事信息 /// </summary> private string GetCustomerType5(string CustID, string CommID, int Start, int End, int Size, int IsTousu = -1) { using (var conn = new SqlConnection(PubConstant.hmWyglConnectionString)) { var sql = @"SELECT COUNT(1) FROM Tb_HSPR_IncidentAccept a WHERE ISNULL( IsDelete, 0 )=0 AND CommID=@CommID AND CustID=@CustID"; long count = conn.QueryFirstOrDefault <long>(sql, new { CommID, CustID }); long pageRes = count % Size > 0 ? (count / Size) + 1 : count / Size; long countRes = count; var chargeConnString = Global_Fun.BurstConnectionString(AppGlobal.StrToInt(CommID), Global_Fun.BURST_TYPE_CHARGE); using (var chargeConn = new SqlConnection(chargeConnString)) { sql = $@"SELECT * FROM ( SELECT *,ROW_NUMBER () OVER ( ORDER BY IncidentDate DESC ) AS RowId FROM ( SELECT x.CommID,x.CustID,x.IncidentNum,x.RoomSign,x.IncidentPlace,x.IncidentContent, x.IncidentDate,x.DealMan,x.DealSituation,x.IsDelete,x.IsTouSu, (SELECT isnull(sum(isnull(y.DueAmount,0)),0) FROM Tb_HSPR_Fees y WHERE isnull(IsDelete,0)=0 AND y.IncidentID=x.IncidentID) AS ChargeAmount, (SELECT TOP 1 CASE y.ReplyResult WHEN 1 THEN '成功回访' ELSE '不成功回访' END FROM {Global_Var.ERPDatabaseName}.dbo.Tb_HSPR_IncidentReply y WHERE y.IncidentID=x.IncidentID ORDER BY y.ReplyResult DESC) AS ReplyResult, (SELECT TOP 1 y.ServiceQuality FROM {Global_Var.ERPDatabaseName}.dbo.Tb_HSPR_IncidentReply y WHERE y.IncidentID=x.IncidentID ORDER BY y.ReplyResult DESC) AS ServiceQuality, (SELECT TOP 1 y.ReplyContent FROM {Global_Var.ERPDatabaseName}.dbo.Tb_HSPR_IncidentReply y WHERE y.IncidentID=x.IncidentID ORDER BY y.ReplyResult DESC) AS ReplyContent, (SELECT y.TypeName FROM {Global_Var.ERPDatabaseName}.dbo.Tb_HSPR_CorpIncidentType y WHERE y.CorpTypeID=isnull(x.FineCorpTypeID,x.BigCorpTypeID)) AS TypeName FROM {Global_Var.ERPDatabaseName}.dbo.view_HSPR_IncidentAccept_Filter x ) a WHERE ISNULL(IsDelete, 0)=0 AND CommID=@CommID AND CustID=@CustID {(IsTousu == 1 ? " AND isnull(IsTousu,0)=1" : "")} ) AS a WHERE RowId BETWEEN @Start AND @END;"; var IncidentList = chargeConn.Query(sql, new { CommID = CommID, CustID = CustID, Start = Start, End = End }); return(new ApiPageResult(true, IncidentList, pageRes, countRes).toJson()); } } }
public static string getSignature(Dictionary <string, string> parameters) { string data = ""; string secret = Global_Fun.AppWebSettings("ZLSecret"); //"3KUkEEV0zTLLXSqWG2KMRCgOU+GZDHj5cL1i8xdFVKD1QXG2lLCvOEYZs9SUKTqEbLSFtDO5DllNxYSG/nff6A=="; byte[] key = Convert.FromBase64String(secret); HMACSHA1 myhmacsha1 = new HMACSHA1(key); myhmacsha1.Initialize(); byte[] b = null; var vDic = parameters.OrderBy(x => x.Key, new ComparerString()).ToDictionary(x => x.Key, y => y.Value); foreach (KeyValuePair <string, string> kv in vDic) { data = data + kv.Key + kv.Value; } b = myhmacsha1.ComputeHash(Encoding.UTF8.GetBytes(data)); return(Convert.ToBase64String(b)); }
public string SendStatusForZL(long IncidentID, int status, string flowNode, string message) { string requestUrl = Global_Fun.AppWebSettings("ZLRequestUrl"); //"http://test118.zuolin.com/vdocking/privilege/hasManagePrivilege"; ZLDataModel model = new ZLDataModel(); model.appKey = Global_Fun.AppWebSettings("ZLAppKey"); //"9057b579-1f68-456d-b98d-a151ddeacd35"; model.timeStamp = ConvertDateTimeToLong(DateTime.Now); Random rad = new Random(); //实例化随机数产生器rad; model.nonce = rad.Next(1000, 10000).ToString(); model.namespaceId = int.Parse(Global_Fun.AppWebSettings("ZLNamespaceId")); //11; model.sendNo = ConvertDateTimeToLong(DateTime.Now); model.incidentId = 19730200002222; model.status = 2; model.flowNode = "11111"; model.message = "11111"; Dictionary <string, string> parameters = new Dictionary <string, string>(); parameters.Add("appKey", model.appKey); parameters.Add("nonce", model.nonce); parameters.Add("timeStamp", model.timeStamp); parameters.Add("namespaceId", model.namespaceId.ToString()); parameters.Add("sendNo", model.sendNo); parameters.Add("data[0].incidentId", model.incidentId.ToString()); parameters.Add("data[0].status", model.status.ToString()); parameters.Add("data[0].flowNode", model.flowNode); parameters.Add("data[0].message", model.message); model.signature = getSignature(parameters); parameters.Add("signature", model.signature); string contents = string.Format(@"appKey={1}&timeStamp={2}&nonce={3}&namespaceId={4}&sendNo={5}&data[0].incidentId={6}&data[0].status={7}&data[0].flowNode={8}&data[0].message={9}&signature={10}", requestUrl, model.appKey, model.timeStamp, model.nonce, model.namespaceId, model.sendNo, model.incidentId, model.status, model.flowNode, model.message, model.signature); string str = SendHttp(requestUrl, contents); return(str); }
/// <summary> /// 配置支付请求参数,根据当前商家获取 /// </summary> /// <param name="BussId"></param> public WxPayConfig GenerateConfig(string BussId) { WxPayConfig wxPayConfig = null; IDbConnection conn = new SqlConnection(ConnectionDb.GetBusinessConnection()); string query = "SELECT * FROM Tb_WeiXinPayCertificate WHERE BussId=@BussId"; Model.Model.Buss.Tb_WeiXinPayCertificate T = conn.Query <Model.Model.Buss.Tb_WeiXinPayCertificate>(query, new { BussId = BussId }).SingleOrDefault(); if (T != null) { wxPayConfig = new WxPayConfig(); wxPayConfig.APPID = T.appid.ToString(); wxPayConfig.MCHID = T.mch_id.ToString(); wxPayConfig.KEY = T.appkey.ToString(); wxPayConfig.APPSECRET = T.appsecret.ToString(); wxPayConfig.SSLCERT_PATH = T.SSLCERT_PATH; wxPayConfig.SSLCERT_PASSWORD = T.SSLCERT_PASSWORD; wxPayConfig.NOTIFY_URL = Global_Fun.AppWebSettings("WechatPayBuss_Notify_Url").ToString(); } return(wxPayConfig); }
/// <summary> /// 配置支付请求参数,根据当前小区获取 /// </summary> /// <param name="Row"></param> public WxPayConfig GenerateConfig(string CommunityId) { WxPayConfig wxPayConfig = null; IDbConnection conn = new SqlConnection(PubConstant.UnifiedContionString.ToString()); string query = "SELECT * FROM Tb_WeiXinPayCertificate WHERE CommunityId=@CommunityId"; Tb_WeiXinPayCertificate T = conn.Query <Tb_WeiXinPayCertificate>(query, new { CommunityId = CommunityId }).SingleOrDefault(); if (T != null) { wxPayConfig = new WxPayConfig(); wxPayConfig.APPID = T.appid.ToString(); wxPayConfig.MCHID = T.mch_id.ToString(); wxPayConfig.KEY = T.appkey.ToString(); wxPayConfig.APPSECRET = T.appsecret.ToString(); wxPayConfig.SSLCERT_PATH = T.SSLCERT_PATH; wxPayConfig.SSLCERT_PASSWORD = T.SSLCERT_PASSWORD; wxPayConfig.NOTIFY_URL = Global_Fun.AppWebSettings("WechatPay_Notify_Url").ToString(); } return(wxPayConfig); }
/// <summary> /// 环境巡检 记录 /// </summary> /// <param name="commId"></param> /// <returns></returns> private TaskInfo GetEnvironment(int commId) { // 环境 using (var ambientConn = new SqlConnection(Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_AMBIENT))) { var sql = $@"SELECT TOP 1 convert(varchar(20),LastExecuteTime,120) FROM ( SELECT BeginTime AS LastExecuteTime FROM Tb_CP_Task_Ambient WHERE IsClose=0 AND IsDelete=0 AND BeginTime<=getdate() AND CommId=@CommID ) AS t ORDER BY LastExecuteTime DESC"; var ambientDate = ambientConn.Query <string>(sql, new { CommID = commId }).FirstOrDefault(); return(new TaskInfo { TaskType = "环境巡检", LastExecuteTime = ambientDate ?? "暂无巡检记录" }); } }
protected void Page_Load(object sender, EventArgs e) { var corpId = Request["CorpId"].ToString(); var taskId = Request["TaskId"].ToString(); var entry = Request["Net"] ?? "1"; Global_Var.CorpId = corpId; Global_Var.CorpID = corpId; Global_Var.LoginCorpID = corpId; PubConstant.tw2bsConnectionString = Global_Fun.Tw2bsConnectionString(entry); AppGlobal.GetHmWyglConnection(); using (var conn = new SqlConnection(PubConstant.hmWyglConnectionString)) { var sql = @"SELECT GuidanceDocuments FROM Tb_Visit_VisitCategory WHERE ID=(SELECT VisitCategoryID FROM Tb_Visit_Plan WHERE ID=@PlanId);"; var guide = conn.Query <string>(sql, new { PlanId = taskId }).FirstOrDefault(); guideContent.InnerText = guide ?? "暂无指引信息"; } }
//活动目录判断 public static string IsAuthenticated(String username, String pwd) { string IsAd = "true"; try { IsAd = Global_Fun.AppWebSettings("IsAd"); } catch (Exception E) { return("true"); } string ADDomain = Global_Fun.AppWebSettings("ADDomain"); if (IsAd == "true") { try { string domain = ADDomain; String domainAndUsername = domain + @"\" + username; DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain, username, pwd); Object obj = entry.NativeObject; DirectorySearcher search = new DirectorySearcher(entry); search.Filter = "(SAMAccountName=" + username + ")"; search.PropertiesToLoad.Add("cn"); SearchResult result = search.FindOne(); if (null == result) { return("活动目录验证该账号失败"); } } catch (Exception E) { return("活动目录:" + E.Message.ToString()); } } return("true"); }
/// <summary> /// 获取复验待办列表 /// </summary> private string GetHouseInspectionReviewList(DataRow row) { if (!row.Table.Columns.Contains("CommID") || string.IsNullOrEmpty(row["CommID"].ToString())) { return(JSONHelper.FromString(false, "小区编号不能为空")); } string commID = row["CommID"].ToString(); int PageIndex = 1; int PageSize = 10; if (row.Table.Columns.Contains("PageIndex")) { PageIndex = Global_Fun.StrToInt(row["PageIndex"].ToString()); } if (row.Table.Columns.Contains("PageSize")) { PageSize = Global_Fun.StrToInt(row["PageSize"].ToString()); } using (IDbConnection con = new SqlConnection(PubConstant.hmWyglConnectionString)) { string sql = @"SELECT b.IID,(SELECT stuff((SELECT ','+FilePath FROM Tb_HSPR_HousingFiles f WHERE f.InspID = CAST(b.InspID AS VARCHAR(50)) AND f.ProjID = CAST(b.ProjID AS VARCHAR(50)) FOR XML PATH ('')),1,1,'')) AS FilePath, c.HS_Projects AS ProjName,c.HS_Standards AS ProjStandard, a.IncidentID,a.IncidentNum,a.DispMan,a.DispDate,a.DealMan,a.MainEndDate, a.RoomID,e.RoomSign,d.InspRepr,d.AccoRepr,d.InspDate,isnull(b.Review,0) AS Review,g.CustName,g.MobilePhone FROM Tb_HSPR_IncidentAccept a LEFT JOIN Tb_HSPR_HousingInspDetail b ON b.IID=a.HousingInspDetailID LEFT JOIN Tb_HSPR_HousingProj c ON b.ProjID=c.ProjID LEFT JOIN Tb_HSPR_HousingInsp d ON b.InspID=d.InspID LEFT JOIN Tb_HSPR_Room e ON a.RoomID=e.RoomID LEFT JOIN Tb_HSPR_Customer g ON d.CustID=g.CustID WHERE isnull(a.DealState,0)=1 AND a.CommID=@CommID AND a.HousingInspDetailID IS NOT NULL AND (isnull(b.Review,0)=0 OR b.Review=2)"; IEnumerable <dynamic> resultSet = con.Query(sql, new { CommID = commID }); return(new ApiResult(true, resultSet).toJson()); } }
/// <summary> /// 物业ERP账号注销 /// </summary> private string TWERPAccountLogout(int server, int corpId, string usercode) { PubConstant.tw2bsConnectionString = Global_Fun.Tw2bsConnectionString(server.ToString()); DbHelperSQL.ConnectionString = PubConstant.tw2bsConnectionString; using (var conn = new SqlConnection(PubConstant.tw2bsConnectionString)) { var sql = @"SELECT * FROM Tb_System_Corp WHERE CorpID=@CorpID AND isnull(IsDelete,0)=0;"; var corpInfo = conn.Query(sql, new { CorpID = corpId }).FirstOrDefault(); if (corpInfo == null) { return(new ApiResult(false, "未找到CorpID配置信息").toJson()); } PubConstant.hmWyglConnectionString = $"Max Pool Size=2048;Min Pool Size=0;Pooling=true;Data Source={corpInfo.DBServer};Initial Catalog={corpInfo.DBName};User ID={corpInfo.DBUser};Password={corpInfo.DBPwd};"; } // 记录注销日志 WriteLog(usercode, "登出系统", "物管App登出"); return(new ApiResult(true, "注销成功").toJson()); }
/// <summary> /// 设备任务最近执行信息 /// </summary> private IEnumerable <TaskDetailInfo> GetEquipmentExecuteInfo(int commId) { using (var conn = new SqlConnection(Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_EQ))) { var sql = $@"SELECT TOP 5 TaskId ,PlanName, TaskStatue AS PlanState,ExecuteBeginTime AS DidBeginTime, (case when ExecuteEndTime IS NOT NULL THEN ExecuteEndTime ELSE TaskEndTime end) AS DidEndTime, convert(varchar(20),TaskBeginTime,120) AS TaskBeginTime, TaskTypeName='设备巡检' FROM Tb_Eq_Task_Inspection WHERE IsClose=0 AND IsDelete=0 AND TaskBeginTime<=getdate() AND IsFireControl=0 AND CommId=@CommID ORDER BY TaskBeginTime DESC"; var reader = conn.QueryMultiple(sql, new { CommID = commId }); List <TaskRecentlyExecuteInfo> task1 = reader.Read <TaskRecentlyExecuteInfo>().ToList(); var list = new List <TaskDetailInfo>(); if (task1.Count > 0) { list.Add(new TaskDetailInfo("设备巡检", task1)); } return(list); } }
/// <summary> /// 安全任务最近执行信息 /// </summary> private IEnumerable <TaskDetailInfo> GetSecureExecuteInfo(int commId) { using (IDbConnection safeConn = new SqlConnection(Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_SAFE)), eqConn = new SqlConnection(Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_EQ))) { var sql = @"SELECT TOP 5 TaskId,PlanName,PlanState,DidBeginTime, (case when DidEndTime IS NOT NULL THEN DidEndTime ELSE EndTime end) AS DidEndTime, convert(varchar(20),BeginTime,120) AS TaskBeginTime, TaskTypeName='安全巡更' FROM Tb_CP_Task_Safe WHERE IsClose=0 AND IsDelete=0 AND BeginTime<=getdate() AND CommId=@CommID AND TaskLevelName='安全巡更' ORDER BY BeginTime DESC;"; List <TaskRecentlyExecuteInfo> task1 = safeConn.Query <TaskRecentlyExecuteInfo>(sql, new { CommID = commId }).ToList(); sql = @"SELECT TOP 5 TaskId,PlanName,TaskStatue AS PlanState,ExecuteBeginTime AS DidBeginTime, (case when ExecuteEndTime IS NOT NULL THEN ExecuteEndTime ELSE TaskEndTime end) AS DidEndTime, convert(varchar(20),TaskBeginTime,120) AS TaskBeginTime, TaskTypeName='消防巡检' FROM Tb_Eq_Task_Inspection WHERE IsClose=0 AND IsDelete=0 AND TaskBeginTime<=getdate() AND IsFireControl=1 AND CommId=@CommID ORDER BY TaskBeginTime DESC"; List <TaskRecentlyExecuteInfo> task2 = eqConn.Query <TaskRecentlyExecuteInfo>(sql, new { CommID = commId }).ToList(); var list = new List <TaskDetailInfo>(); if (task1.Count > 0) { list.Add(new TaskDetailInfo("安全巡更", task1)); } if (task2.Count > 0) { list.Add(new TaskDetailInfo("消防巡检", task2)); } return(list); } }
public Alipay_lf() //获取小区、项目信息 { base.Token = "20181228Alipay_lf"; c = new Config(); c.notify_url = Global_Fun.AppWebSettings("AliPay_Notify_Url").ToString(); }
/// <summary> /// 生成银行订单 /// </summary> /// <param name="merId">商户号</param> /// <param name="orderId">订单ID</param> /// <param name="txnTime">订单开始时间</param> /// <param name="total_fee">总金额分</param> /// <param name="R">是否成功生成订单</param> /// <returns></returns> public string GenerateBankOrder(string CommunityId, string UserId, string feesId, string out_trade_no, string txnTime, int total_fee, ref bool R, ref string BankOrderId, ref WxPayData WPD, WxPayConfig wxPayConfig, string openId = "") { R = false; //统一下单 WxPayData data = new WxPayData(); using (var conn = new SqlConnection(PubConstant.UnifiedContionString.ToString())) { dynamic commInfo = conn.Query("SELECT * FROM Tb_Community WHERE Id=@CommunityId OR CommID=@CommunityId", new { CommunityId = CommunityId }).FirstOrDefault(); if (commInfo != null) { // 俊发 //if (commInfo.CorpID == 1985) //{ // data.SetValue("body", commInfo.CommName.ToString() + "物管费用"); //} //else //{ using (var erpConn = new SqlConnection(PubConstant.hmWyglConnectionString)) { dynamic feesInfo = erpConn.Query(@"SELECT (SELECT isnull(c.CommName,'') FROM Tb_HSPR_Community c WHERE x.CommID=c.CommID) AS CommName, (SELECT isnull(isnull(a.RoomName,a.RoomSign),'') FROM Tb_HSPR_Room a WHERE a.RoomID=x.RoomID) AS RoomName, (SELECT isnull(b.CustName,'') FROM Tb_HSPR_Customer b WHERE b.CustID=x.CustID) AS CustName FROM Tb_HSPR_Fees x WHERE FeesID=@FeesID;", new { FeesID = feesId }).FirstOrDefault(); if (feesInfo != null) { string commName = feesInfo.CommName == null ? "" : feesInfo.CommName.ToString(); string roomName = feesInfo.RoomName == null ? "" : feesInfo.RoomName.ToString(); string custName = feesInfo.CustName == null ? "" : ",业主:" + feesInfo.CustName.ToString(); if (!string.IsNullOrEmpty(roomName)) { roomName = roomName.Replace("幢", "-").Replace("栋", "-").Replace("单元", "-").Replace("楼", "-").Replace("号", "-").Replace("房", "-") .Replace("--", "-"); } data.SetValue("body", $"{commName}{roomName}物管费用{custName}"); } else { data.SetValue("body", "物管费用"); } } } //} else { data.SetValue("body", "物管费用"); } } // 是否有使用积分 data.SetValue("attach", CommunityId + "," + UserId); data.SetValue("out_trade_no", out_trade_no); data.SetValue("total_fee", total_fee); data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss")); data.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss")); data.SetValue("notify_url", Global_Fun.AppWebSettings("WechatPay_Notify_Url").ToString()); //2017-06-05 //修改人:敬志强 //修改内容:新增openid字段判断 //如果没有openid即视为APP支付 //有openid即是微信公众号H5支付 if (string.IsNullOrEmpty(openId)) { data.SetValue("trade_type", "APP"); } else { data.SetValue("trade_type", "JSAPI"); data.SetValue("openid", openId); } WxPayData result = WxPayApi.UnifiedOrder(data, wxPayConfig); if (!result.IsSet("appid") || !result.IsSet("prepay_id") || result.GetValue("prepay_id").ToString() == "") { R = false; return(result.ToXml()); } R = true; WPD = result; return("SUCCESS"); }
/// <summary> /// 获取入伙待办、进场待办,入伙:Type=1,进场:Type=2 /// </summary> private string GetOccupationList(DataRow row) { if (!row.Table.Columns.Contains("CommID") || string.IsNullOrEmpty(row["CommID"].ToString())) { return(JSONHelper.FromString(false, "小区编号不能为空")); } if (!row.Table.Columns.Contains("Type") || string.IsNullOrEmpty(row["Type"].ToString())) { return(JSONHelper.FromString(false, "Type不能为空")); } string commID = row["CommID"].ToString(); string type = row["Type"].ToString(); string sql = string.Empty; if (type == "1") { // 入伙待办 sql = @"SELECT ('OccuID='+OccupationId) AS Id, RoomSign, CustName, RoomID, CustID, MobilePhone, PaperCode FROM View_Tb_Occupation_OccupationBacklog WHERE OccupationState='待入伙' AND CommID={0} AND ISNULL(IsDelete,0)=0"; } else if (type == "2") { // 进场待办,关联合同 sql = @"SELECT ('ContID='+convert(NVARCHAR(36), x.ContID)) AS Id,x.RoomSign, x.CustName, x.CustomerLiveRoomID AS RoomID, x.CustID, y.MobilePhone, y.PaperCode FROM view_HSPR_GetReadyList_Filter x LEFT JOIN Tb_HSPR_Customer y ON x.CustID=y.CustID WHERE ISNULL(ApproachState, '')='' AND x.CommID={0} AND ISNULL(x.IsDelete,0)=0"; } else if (type == "3") { // 退场待办,关联合同 sql = @"SELECT ('WithdrawalID='+CONVERT(NVARCHAR(36), Id)) AS Id,RoomSign,CustName,RoomID, CustID, MobilePhone, PaperCode FROM VIEW_Tb_Customer_Withdrawal WHERE State = '待退场' AND CommID = '{0}'"; } else { return(new ApiResult(false, "未知任务类型").toJson()); } sql = string.Format(sql, commID); int PageIndex = 1; int PageSize = 10; if (row.Table.Columns.Contains("PageIndex")) { PageIndex = Global_Fun.StrToInt(row["PageIndex"].ToString()); } if (row.Table.Columns.Contains("PageSize")) { PageSize = Global_Fun.StrToInt(row["PageSize"].ToString()); } using (IDbConnection con = new SqlConnection(PubConstant.hmWyglConnectionString)) { DynamicParameters parameters = new DynamicParameters(); parameters.Add("@FldName", "*"); parameters.Add("@PageSize", PageSize); parameters.Add("@PageIndex", PageIndex); parameters.Add("@FldSort", "RoomID"); parameters.Add("@Sort", 0); parameters.Add("@StrCondition", sql); parameters.Add("@Id", "Id"); parameters.Add("@PageCount", 0, DbType.Int32, ParameterDirection.Output); parameters.Add("@Counts", 0, DbType.Int32, ParameterDirection.Output); IEnumerable <dynamic> resultSet = con.Query <dynamic>("Proc_System_TurnPage", parameters, null, false, null, CommandType.StoredProcedure); int PageCount = parameters.Get <int>("@PageCount"); int Counts = parameters.Get <int>("@Counts"); if (resultSet.Count() > 0) { List <dynamic> result = new List <dynamic>(); using (IDbConnection con2 = new SqlConnection(PubConstant.hmWyglConnectionString)) { foreach (dynamic item in resultSet) { // 获取验房记录 sql = @"SELECT * FROM Tb_HSPR_HousingInsp WHERE CustID=@CustID AND RoomID=@RoomID ORDER BY InspDate DESC"; IEnumerable <dynamic> historySet = con2.Query(sql, new { CustID = Convert.ToInt64(item.CustID), RoomID = Convert.ToInt64(item.RoomID) }); item.History = historySet; if (historySet.Count() > 0) { foreach (var historyItem in historySet) { sql = @"SELECT a.*, ((SELECT stuff((SELECT ','+FilePath FROM Tb_HSPR_HousingFiles WHERE InspID=@InspID AND ProjID=a.ProjID FOR XML PATH('')),1,1,''))) AS FilePath FROM Tb_HSPR_HousingInspDetail a WHERE a.InspID=@InspID ORDER BY ProjID"; IEnumerable <dynamic> historyDetailSet = con2.Query(sql, new { InspID = Convert.ToString(historyItem.InspID) }); historyItem.Detail = historyDetailSet; } } result.Add(item); } string resultString = new ApiResult(true, result).toJson(); resultString = resultString.Insert(resultString.Length - 1, string.Format(",\"PageCount\":{0}", PageCount)); return(resultString); } } return(JSONHelper.FromDataTable(new DataTable())); } }
/// <summary> /// 提交魔蓝成员信息(创建或者修改成员信息) /// </summary> /// <param name="row"></param> /// <returns></returns> private string SubmitMoredianMember(DataRow row) { try { #region 获取参数并简单校验 string Mobile = string.Empty; if (row.Table.Columns.Contains("Mobile")) { Mobile = row["Mobile"].ToString(); } if (string.IsNullOrEmpty(Mobile)) { return(new WxResponse(0, "用户不存在", null).toJson()); } if (Mobile.Length != 11) { return(new WxResponse(0, "用户不存在", null).toJson()); } string Face = string.Empty; if (row.Table.Columns.Contains("Face")) { Face = row["Face"].ToString(); } DateTime DateNow = DateTime.Now; #endregion using (IDbConnection conn = new SqlConnection(PubConstant.WChat2020ConnectionString), erpConn = new SqlConnection(erpConnStr)) { #region 获取AppToken TianChengEntranceSyncService.Config.EntranceConnectionStr = erpConnStr; TianChengEntranceSyncService.Config.WChat2020ConnectionStr = PubConstant.WChat2020ConnectionString; string app_token = AppTokenRedis.GetAppToken(); if (string.IsNullOrEmpty(app_token)) { return(new WxResponse(0, "获取AppToken失败,请联系管理员", null).toJson()); } #endregion #region 先查询/创建组织机构 MoredianOrg moredianOrg = OrgRedis.GetMoredianOrg(); if (null == moredianOrg) { return(new WxResponse(0, "组织机构配置错误,请联系管理员", null).toJson()); } #endregion #region 获取组织机构的AccessToken string access_token = AccessTokenRedis.GetAccessToken(Convert.ToString(moredianOrg.orgId), moredianOrg.orgAuthKey); if (string.IsNullOrEmpty(access_token)) { return(new WxResponse(0, "获取AccessToken失败,请联系管理员", null).toJson()); } #endregion MoredianMember moredianMember = MemberRedis.GetMoredianMember(Mobile); #region 读取人脸图片 byte[] showFace = null; string IncidentAcceptImageUrl = Global_Fun.AppWebSettings("IncidentAcceptImageUrl"); if (Face.Contains(IncidentAcceptImageUrl)) { string IncidentAcceptImageSavePath = Global_Fun.AppWebSettings("IncidentAcceptImageSavePath"); #region 从本地服务器读取图片 // 替换文件路径为本地路径 string localFacePath = Face.Replace(IncidentAcceptImageUrl, IncidentAcceptImageSavePath); if (!File.Exists(localFacePath)) { return(new WxResponse(0, "人脸图片不存在,请重试", null).toJson()); } FileStream fileStream = File.OpenRead(localFacePath); int filelength = (int)fileStream.Length; showFace = new byte[filelength]; fileStream.Read(showFace, 0, filelength); #endregion } else { #region 从网络获取图片内容 { try { HttpHelper http = new HttpHelper(); HttpItem item = new HttpItem() { URL = Face, //URL 必需项 Method = "GET", //URL 可选项 默认为Get Timeout = 5000, //连接超时时间 可选项默认为100000 ReadWriteTimeout = 5000, //写入Post数据超时时间 可选项默认为30000 ResultType = ResultType.Byte, //返回数据类型,是Byte还是String ProtocolVersion = HttpVersion.Version11, //获取或设置用于请求的 HTTP 版本。默认为 System.Net.HttpVersion.Version11 }; HttpResult result = http.GetHtml(item); showFace = result.ResultByte; } catch (Exception ex) { return(new WxResponse(0, "读取人脸图片失败,请重试", ex.Message).toJson()); } } #endregion } #endregion #region 成员不存在,创建成员 if (null == moredianMember) { // 进行创建人员信息 IMoredianApiClient client = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL); MoredianCreateMemberRequest request = new MoredianCreateMemberRequest { moredianMember = new MoredianMember { mobile = Mobile, memberName = Mobile, }, showFace = showFace, verifyFace = showFace, }; MoredianCreateMemberResponse response = client.Execute(request, app_token, access_token); if (!response.IsSucc()) { return(new WxResponse(0, "上传人脸信息失败,请重试", response.Message).toJson()); } moredianMember = new MoredianMember { memberId = response.memberId, mobile = Mobile, showFace = Face }; erpConn.Execute("INSERT INTO [dbo].[Tb_HSPR_Entrance_Member](Mobile, MemberId, Face) VALUES (@Mobile, @MemberId, @Face)", new { Mobile, Face, MemberId = moredianMember.memberId }); moredianMember = MemberRedis.UpdateMoredianMember(Mobile); return(new WxResponse(200, "上传人脸信息成功", moredianMember).toJson()); } #endregion if (string.IsNullOrEmpty(moredianMember.showFace) && string.IsNullOrEmpty(Face)) { return(new WxResponse(200, "操作成功", null).toJson()); } #region 除人脸 if (string.IsNullOrEmpty(Face)) { // 更新显示图片 IMoredianApiClient client = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL); MoredianDeleteMemberVerifyFaceRequest request = new MoredianDeleteMemberVerifyFaceRequest { memberId = moredianMember.memberId, }; MoredianDeleteMemberVerifyFaceResponse response = client.Execute(request, app_token, access_token); if (!response.IsSucc()) { return(new WxResponse(0, "删除人脸信息失败", response.Message).toJson()); } erpConn.Execute("UPDATE Tb_HSPR_Entrance_Member SET Face = @Face WHERE Mobile = @Mobile AND MemberId = @MemberId", new { Mobile, Face, MemberId = moredianMember.memberId }); moredianMember = MemberRedis.UpdateMoredianMember(Mobile); return(new WxResponse(200, "删除人脸信息成功", moredianMember).toJson()); } #endregion #region 更新成员人脸 { // 更新显示图片 IMoredianApiClient client = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL); MoredianUpdateMemberVerifyFaceRequest request = new MoredianUpdateMemberVerifyFaceRequest { memberId = moredianMember.memberId, face = showFace }; MoredianUpdateMemberVerifyFaceResponse response = client.Execute(request, app_token, access_token); if (!response.IsSucc()) { return(new WxResponse(0, "更新人脸信息失败,请重试", response.Message).toJson()); } } { // 更新显示图片 IMoredianApiClient client = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL); MoredianUpdateMemberShowFaceRequest request = new MoredianUpdateMemberShowFaceRequest { memberId = moredianMember.memberId, face = showFace }; MoredianUpdateMemberShowFaceResponse response = client.Execute(request, app_token, access_token); // 显示图片不处理失败情况 } erpConn.Execute("UPDATE Tb_HSPR_Entrance_Member SET Face = @Face WHERE Mobile = @Mobile AND MemberId = @MemberId", new { Mobile, Face, MemberId = moredianMember.memberId }); moredianMember = MemberRedis.UpdateMoredianMember(Mobile); return(new WxResponse(200, "更新人脸信息成功", moredianMember).toJson()); #endregion } } catch (Exception ex) { GetLog().Error(ex.Message + Environment.CommandLine + ex.StackTrace); return(new WxResponse(0, "响应异常", null).toJson()); } }
/// <summary> /// 构造器 /// </summary> public AlipayBusinessOrder_Changcheng() { base.Token = "20200603AlipayBusinessOrder_Changcheng"; c = new Config(); c.notify_url = Global_Fun.AppWebSettings("AliPayBuss_Notify_Url").ToString(); }
private string OnPay(DataRow row) { #region 获取基本参数 string CommunityId = string.Empty; if (row.Table.Columns.Contains("CommunityId")) { CommunityId = row["CommunityId"].ToString(); } string RoomID = string.Empty; if (row.Table.Columns.Contains("RoomID")) { RoomID = row["RoomID"].ToString(); } string CustID = string.Empty; if (row.Table.Columns.Contains("CustID")) { CustID = row["CustID"].ToString(); } string OpenID = string.Empty; if (row.Table.Columns.Contains("OpenID")) { OpenID = row["OpenID"].ToString(); } if (!row.Table.Columns.Contains("PayChannel") || string.IsNullOrEmpty(row["PayChannel"].ToString())) { return(new ApiResult(false, "参数PayChannel有误").toJson()); } var community = GetCommunity(CommunityId); if (community == null) { return(JSONHelper.FromString(false, "未查询到小区信息")); } int CommID = AppGlobal.StrToInt(community.CommID); PubConstant.hmWyglConnectionString = GetConnectionStr(community); var payChannel = row["PayChannel"].ToString(); var payType = 0; switch (payChannel.ToLower()) { case PayChannelString.Alipay: payType = 1; break; case PayChannelString.WechatPay: payType = 2; break; case PayChannelString.AllInPay_Alipay: payType = 1; break; case PayChannelString.AllInPay_WechatPay: payType = 2; break; default: return(new ApiResult(false, "参数payChannel有误").toJson()); } if (payType == 2) { if (payChannel.ToLower().Equals(PayChannelString.AllInPay_WechatPay) && string.IsNullOrEmpty(OpenID)) { return(new ApiResult(false, "参数OpenID不能为空").toJson()); } } #endregion using (IDbConnection erpConn = new SqlConnection(PubConstant.hmWyglConnectionString)) { dynamic tb_Payment_Config = erpConn.QueryFirstOrDefault <dynamic>("SELECT * FROM Tb_Payment_Config WITH(NOLOCK) WHERE CommID = @CommID", new { CommID }); if (null == tb_Payment_Config) { return(new ApiResult(false, "该项目未开通对应支付方式").toJson()); } // 旧方式获取对应支付配置 AllinConfig allinConfig = null; // 新方式获取支付配置 PaymentConfig paymentConfig = null; if (payChannel == PayChannelString.AllInPay_Alipay || payChannel == PayChannelString.AllInPay_WechatPay) { try { allinConfig = JsonConvert.DeserializeObject <AllinConfig>(tb_Payment_Config.Config); if (null == allinConfig) { return(new ApiResult(false, "该项目支付类型对应配置有误").toJson()); } } catch (Exception) { return(new ApiResult(false, "该项目支付类型对应配置有误").toJson()); } } else { // 新的方式,Config存储多个配置 try { // ERP的配置表,要求存储一个Json数组,用于配置支持不同支付方式 // 配置项要求存储一个 List <PaymentConfig> configs = JsonConvert.DeserializeObject <List <PaymentConfig> >(tb_Payment_Config.Config); if (null == configs || configs.Count <= 0) { return(new ApiResult(false, "该项目支付类型对应配置有误").toJson()); } if (payChannel == PayChannelString.Alipay) { paymentConfig = configs.Find(item => item.type == "AliPay"); } if (payChannel == PayChannelString.WechatPay) { paymentConfig = configs.Find(item => item.type == "WChatPay"); } if (null == paymentConfig) { return(new ApiResult(false, "该项目支付类型对应配置有误").toJson()); } } catch (Exception) { } } #region 计算金额 if (!row.Table.Columns.Contains("PayData") || string.IsNullOrEmpty(row["PayData"].ToString())) { return(new ApiResult(false, "缺少参数PayData").toJson()); } string PayData = row["PayData"].ToString(); if (!CheckPayData(Global_Fun.BurstConnectionString(CommID, Global_Fun.BURST_TYPE_CHARGE), Convert.ToInt64(CustID), Convert.ToInt64(RoomID), PayData, out decimal Amt, out string errMsg, true, false, !"1940".Equals(Global_Var.LoginCorpID))) { return(new ApiResult(false, errMsg).toJson()); } if (Amt <= 0.00M) { return(new ApiResult(false, "金额必须大于0").toJson()); } #endregion JObject PayDataObj = JObject.Parse(PayData); int Type = (int)PayDataObj["Type"]; #region 查询项目名称和房屋编号,拼接费用备注 string FeesMemo = string.Empty; string RoomSign = string.Empty; if (Type == 1) { FeesMemo = "物业综合费用缴纳"; string CommName = erpConn.QueryFirstOrDefault <string>("SELECT CommName FROM Tb_HSPR_Community WHERE CommID = @CommID", new { CommID }); if (string.IsNullOrEmpty(CommName)) { CommName = Convert.ToString(CommID); } RoomSign = erpConn.QueryFirstOrDefault <string>("SELECT ISNULL(RoomSign,RoomName) AS RoomSign FROM Tb_HSPR_Room WHERE RoomID = @RoomID", new { RoomID }); if (string.IsNullOrEmpty(RoomSign)) { RoomSign = Convert.ToString(RoomID); } FeesMemo += string.Format("-{0}-{1}", CommName, RoomSign); } else { FeesMemo = "物业综合费用预存"; string CommName = erpConn.QueryFirstOrDefault <string>("SELECT CommName FROM Tb_HSPR_Community WHERE CommID = @CommID", new { CommID }); if (string.IsNullOrEmpty(CommName)) { CommName = Convert.ToString(CommID); } RoomSign = erpConn.QueryFirstOrDefault <string>("SELECT ISNULL(RoomSign,RoomName) AS RoomSign FROM Tb_HSPR_Room WHERE RoomID = @RoomID", new { RoomID }); if (string.IsNullOrEmpty(RoomSign)) { RoomSign = Convert.ToString(RoomID); } FeesMemo += string.Format("-{0}-{1}", CommName, RoomSign); } #endregion string NoticeId = Guid.NewGuid().ToString(); // 生成订单 if (erpConn.Execute("INSERT INTO Tb_Notice(Id, CommID, RoomID, CustID, PayData, CreateTime) VALUES(@Id, @CommID, @RoomID, @CustID, @PayData, @CreateTime)", new { Id = NoticeId, CommID, RoomID, CustID, PayData, CreateTime = DateTime.Now.ToString() }) <= 0) { return(new ApiResult(false, "创建收款订单失败,请重试").toJson()); } string ChargeMode = "业主APP缴费"; if (payChannel == PayChannelString.AllInPay_Alipay) { ChargeMode = "通联_业主APP(支付宝)"; } else if (payChannel == PayChannelString.AllInPay_WechatPay) { ChargeMode = "通联_业主APP(微信)"; } else { ChargeMode = "通联_业主APP"; } #region 修改收款方式 if (erpConn.QueryFirstOrDefault <int>("SELECT COUNT(1) FROM syscolumns WHERE id=object_id('Tb_Notice') AND name = 'ChargeMode'") > 0) { erpConn.Execute("UPDATE Tb_Notice SET ChargeMode = @ChargeMode WHERE Id = @Id", new { ChargeMode, Id = NoticeId }); } #endregion DateTime dateNow = DateTime.Now; string OrderSN = dateNow.ToString("yyyyMMddHHmmssfff") + Utils.BuildRandomStr(3); string PaymentNotifyUrl = string.Empty; Dictionary <string, string> param = null; if (payChannel == PayChannelString.AllInPay_Alipay || payChannel == PayChannelString.AllInPay_WechatPay) { #region 请求通联支付 #region 获取对应类型的下账地址 if (Type == 1) { PaymentNotifyUrl = AppGlobal.GetAppSetting("AllinPay_Notify_Url") + "?CommID=" + CommID; } else { PaymentNotifyUrl = AppGlobal.GetAppSetting("AllinPay_Prec_Notify_Url") + "?CommID=" + CommID; } #endregion try { param = SybWxPayService.Pay(Convert.ToInt64(Amt * 100), OrderSN, payChannel == PayChannelString.AllInPay_Alipay ? "A01" : "W06", FeesMemo, RoomSign, OpenID, "", PaymentNotifyUrl, "", "", "", "", allinConfig.orgid, allinConfig.appid, allinConfig.custid, allinConfig.appkey, allinConfig.subbranch); if (param == null || !param.ContainsKey("payinfo")) { GetLog().Error("OnPay:" + JsonConvert.SerializeObject(param)); return(new ApiResult(false, "生成支付订单失败,请重试").toJson()); } } catch (Exception ex) { GetLog().Error("OnPay", ex); return(new ApiResult(false, "生成支付订单失败,请重试").toJson()); } if (erpConn.Execute(@"INSERT INTO Tb_Payment_Order(PayType, OrderSN, NoticeId, Amt, CreateTime) VALUES(@PayType, @OrderSN, @NoticeId, @Amt, @CreateTime)", new { PayType = payType, OrderSN = OrderSN, NoticeId = NoticeId, Amt = Amt, CreateTime = dateNow }) <= 0) { return(new ApiResult(false, "生成支付订单失败,请重试(1003)").toJson()); } return(new ApiResult(true, new { OrderSN = OrderSN, QrCode = param["payinfo"].ToString() }).toJson()); #endregion } if (payChannel == PayChannelString.Alipay) { AliConfig aliConfig = null; try { aliConfig = Config.GetConfig <AliConfig>(paymentConfig.config); if (null == aliConfig) { return(new ApiResult(false, "该项目支付类型对应配置有误").toJson()); } } catch (Exception) { return(new ApiResult(false, "该项目支付类型对应配置有误").toJson()); } #region 请求支付宝官方支付 #region 获取对应类型的下账地址 PaymentNotifyUrl = AppGlobal.GetAppSetting("AliPay_Notify_Url"); #endregion AlipayTradeAppPayResponse response = null; try { JObject BizContent = new JObject(); //要求15分钟内支付 BizContent.Add("timeout_express", "15m"); BizContent.Add("total_amount", Amt); BizContent.Add("body", FeesMemo); BizContent.Add("subject", FeesMemo); BizContent.Add("out_trade_no", OrderSN); IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", aliConfig.appid, aliConfig.app_private_key, "json", "1.0", "RSA2", aliConfig.alipay_public_key, "UTF-8", false); AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest { BizContent = JsonConvert.SerializeObject(BizContent), }; request.SetNotifyUrl(PaymentNotifyUrl); response = client.SdkExecute(request); } catch (Exception ex) { Log(ex.Message, "AliPayLogs\\"); GetLog().Error(ex.Message + Environment.CommandLine + ex.StackTrace); return(new ApiResult(false, "请求订单失败,请重试").toJson()); } if (erpConn.Execute("INSERT INTO Tb_Payment_Order(PayType, OrderSN, NoticeId, Amt, CreateTime) VALUES(@PayType, @OrderSN, @NoticeId, @Amt, @CreateTime)", new { PayType = 1, OrderSN, NoticeId = NoticeId, Amt = Amt, CreateTime = dateNow }) <= 0) { return(new ApiResult(false, "生成订单失败").toJson()); } return(new ApiResult(true, new { OrderSN = OrderSN, QrCode = response.Body }).toJson()); #endregion } if (payChannel == PayChannelString.WechatPay) { WxConfig wxConfig = null; try { wxConfig = Config.GetConfig <WxConfig>(paymentConfig.config); if (null == wxConfig) { return(new ApiResult(false, "该项目支付类型对应配置有误").toJson()); } } catch (Exception) { return(new ApiResult(false, "该项目支付类型对应配置有误").toJson()); } #region 请求微信官方支付 #region 获取对应类型的下账地址 PaymentNotifyUrl = AppGlobal.GetAppSetting("WxPay_Notify_Url"); #endregion WxPayData wxPayData = new WxPayData(); wxPayData.SetValue("appid", wxConfig.appid); wxPayData.SetValue("body", FeesMemo); wxPayData.SetValue("mch_id", wxConfig.mch_id); wxPayData.SetValue("nonce_str", WxPayApi.GenerateNonceStr()); wxPayData.SetValue("notify_url", PaymentNotifyUrl); wxPayData.SetValue("out_trade_no", OrderSN); wxPayData.SetValue("spbill_create_ip", "8.8.8.8"); wxPayData.SetValue("total_fee", Convert.ToInt32(Amt * 100)); wxPayData.SetValue("trade_type", "APP"); wxPayData.SetValue("sign_type", wxpay.utils.WxPayData.SIGN_TYPE_HMAC_SHA256); wxPayData.SetValue("sign", wxPayData.MakeSign(wxConfig.appkey)); try { wxPayData = WxPayApi.UnifiedOrder(wxPayData); } catch (Exception) { return(new ApiResult(false, "请求超时,请重试").toJson()); } if (!wxPayData.IsSet("return_code") || !"SUCCESS".Equals(wxPayData.GetValue("return_code").ToString())) { return(new ApiResult(false, "请求支付订单失败").toJson()); } if (!wxPayData.IsSet("result_code") || !"SUCCESS".Equals(wxPayData.GetValue("result_code").ToString())) { return(new ApiResult(false, "请求支付订单失败").toJson()); } if (!wxPayData.IsSet("prepay_id")) { return(new ApiResult(false, "请求支付订单失败").toJson()); } string prepay_id = wxPayData.GetValue("prepay_id").ToString(); if (erpConn.Execute("INSERT INTO Tb_Payment_Order(PayType, OrderSN, NoticeId, Amt, CreateTime) VALUES(@PayType, @OrderSN, @NoticeId, @Amt, @CreateTime)", new { PayType = 2, OrderSN, NoticeId = NoticeId, Amt = Amt, CreateTime = dateNow }) <= 0) { return(new ApiResult(false, "生成订单失败").toJson()); } WxPayData result = new WxPayData(); result.SetValue("appid", wxPayData.GetValue("appid").ToString()); result.SetValue("partnerid", wxPayData.GetValue("mch_id").ToString()); result.SetValue("prepayid", prepay_id); result.SetValue("package", "Sign=WXPay"); result.SetValue("noncestr", wxPayData.GetValue("nonce_str").ToString()); result.SetValue("timestamp", WxPayApi.GenerateTimeStamp()); result.SetValue("sign", result.MakeSign(wxpay.utils.WxPayData.SIGN_TYPE_HMAC_SHA256, wxConfig.appkey)); JObject jObj = JObject.Parse(result.ToJson()); return(new ApiResult(true, new { OrderSN = OrderSN, QrCode = jObj }).toJson()); #endregion } return(new ApiResult(false, "不支持的支付方式").toJson()); } }