/// <summary> /// 生成物业订单 /// </summary> /// <param name="Row"></param> /// <param name="IsOk">是否成功生成物业代收订单</param> /// <param name="Amount">订单总金额</param> /// <returns></returns> public string GeneratePropertyOrder(string CommunityId, string FeesIds, string txnTime, string CustID, ref bool IsOk, ref int Amount, ref string PropertyOrderId, WxPayConfig wxPayConfig) { DataTable CommunityTable = new DbHelperSQLP(PubConstant.UnifiedContionString.ToString()).Query("SELECT * FROM Tb_Community WHERE Id='" + CommunityId.ToString() + "'").Tables[0]; if (CommunityTable.Rows.Count > 0) { //连接字符串 DataRow T = CommunityTable.Rows[0]; Global_Var.CorpSQLConnstr = UnionUtil.GetConnectionString(T); //生成物业订单 DataSet Ds = PropertyOrder(CustID, FeesIds, T["CommID"].ToString(), wxPayConfig.MCHID.ToString().ToString(), txnTime, CommunityId); if (Ds.Tables.Count > 0) { DataRow DRow = Ds.Tables[0].Rows[0]; Amount = AppGlobal.StrToInt(DRow["Amount"].ToString());//总金额 IsOk = true; PropertyOrderId = DRow["orderId"].ToString(); return("生成物业账单成功"); } else { IsOk = false; return("部分费用已缴纳,请重新选择费用"); } } else { //未找到小区 IsOk = false; return("没找到小区"); } }
/// <summary> /// 生成物业订单 /// </summary> /// <param name="Row"></param> /// <param name="IsOk">是否成功生成物业代收订单</param> /// <param name="Amount">订单总金额</param> /// <returns></returns> public string GeneratePropertyOrder(string CommunityId, string CostID, string RoomID, string txnTime, string CustID, ref bool IsOk, ref string Amount, ref string PropertyOrderId, WxPayConfig wxPayConfig) { DataTable CommunityTable = new DbHelperSQLP(PubConstant.UnifiedContionString.ToString()).Query("SELECT * FROM Tb_Community WHERE Id='" + CommunityId.ToString() + "'").Tables[0]; if (CommunityTable.Rows.Count > 0) { //连接字符串 DataRow T = CommunityTable.Rows[0]; Global_Var.CorpSQLConnstr = UnionUtil.GetConnectionString(T); //生成物业订单 DataSet Ds = PropertyOrder(CustID, CostID, T["CommID"].ToString(), RoomID, wxPayConfig.MCHID.ToString(), txnTime, CommunityId, Amount); if (Ds.Tables.Count > 0) { DataRow DRow = Ds.Tables[0].Rows[0]; Amount = DRow["Amount"].ToString();//总金额 IsOk = true; PropertyOrderId = DRow["orderId"].ToString(); return("生成物业账单成功"); } else { IsOk = false; return("生成物业账单失败,请检查选择的费用是否未提交,如若有未交款费项的订单,请先取消订单"); } } else { //未找到小区 IsOk = false; return("没找到小区"); } }
public new static string GetConnection(string CommunityId) { IDbConnection conn = new SqlConnection(PubConstant.UnifiedContionString); string query = "SELECT * FROM Tb_Community WHERE Id=@id OR CommID=@id"; var T = conn.Query <Tb_Community>(query, new { id = CommunityId }).ToList(); if (T.Count > 0) { return(UnionUtil.GetConnectionString(T[0]).ToString()); } return(""); }
public static string GetConnection(string CommunityId) { string strcon = PubConstant.GetConnectionString("APPConnection"); IDbConnection conn = new SqlConnection(strcon); 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(""); }
/// <summary> /// 威富通支付接口,不存数据库,仅做支付用 /// </summary> /// <param name="Row"></param> /// <returns></returns> private string GenerateWftOrder(DataRow Row) { string CommunityId = Row["CommunityId"].ToString(); string FeesIds = Row["FeesIds"].ToString(); string txnTime = DateTime.Now.ToString("yyyyMMddHHmmss"); string CustID = Row["CustID"].ToString(); //2017-06-05添加可选参数openId //用于区分是否来自于微信H5支付 //默认为空 if (!Row.Table.Columns.Contains("openId")) { return(JSONHelper.FromString(false, "请通过微信访问!")); } string openId = Row["openId"].ToString(); //增加FeesIds重复验证 if (FeesIds == "") { return(JSONHelper.FromString(false, "未选择费用!")); } string[] FeesStr = FeesIds.Split(','); HashSet <string> h = new HashSet <string>(); for (int i = 0; i < FeesStr.Length; i++) { h.Add(FeesStr[i]); } if (h.Count != FeesStr.Length) { return(JSONHelper.FromString(false, "费用重复!")); } DataTable CommunityTable = new DbHelperSQLP(PubConstant.UnifiedContionString.ToString()).Query("SELECT * FROM Tb_Community WHERE Id='" + CommunityId.ToString() + "'").Tables[0]; if (null == CommunityTable || CommunityTable.Rows.Count <= 0) { return(JSONHelper.FromString(false, "获取数据库信息失败!")); } //连接字符串 string connStr = UnionUtil.GetConnectionString(CommunityTable.Rows[0]); double Amount = 0.00d; using (IDbConnection conn = new SqlConnection(connStr)) { Amount = conn.ExecuteScalar <double>("SELECT ISNULL(SUM(DebtsAmount),0)+ISNULL(SUM(DebtsLateAmount),0) AS Amount FROM Tb_HSPR_Fees WHERE FeesID IN (" + FeesIds + ")", null, null, null, CommandType.Text); } if (Amount <= 0) { return(JSONHelper.FromString(false, "缴费金额必须大于0!")); } //把金额转换为分 int fen = (int)Amount * 100; //商户订单号,当前10位时间戳+16位随机字符 string out_trade_no = ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000) + Utils.Nmrandom(); RequestHandler reqHandler = new RequestHandler(null); reqHandler.setGateUrl("https://pay.swiftpass.cn/pay/gateway"); reqHandler.setKey("9d101c97133837e13dde2d32a5054abb"); reqHandler.setParameter("out_trade_no", out_trade_no); //商户订单号 reqHandler.setParameter("body", "物管费"); //商品描述 reqHandler.setParameter("attach", CommunityId); //附加信息 reqHandler.setParameter("total_fee", "1"); //总金额 reqHandler.setParameter("mch_create_ip", "125.64.16.10"); //终端IP reqHandler.setParameter("time_start", ""); //订单生成时间 reqHandler.setParameter("time_expire", ""); //订单超时时间 reqHandler.setParameter("service", "pay.weixin.jspay"); //接口类型:pay.weixin.jspay reqHandler.setParameter("mch_id", "7551000001"); //必填项,商户号,由平台分配 reqHandler.setParameter("version", "1.0"); //接口版本号 reqHandler.setParameter("notify_url", "http://125.64.16.10:9999/TwInterface/Service/WeiXinPayCallBack/WeiXinWftPay.ashx"); //通知地址,必填项,接收平台通知的URL,需给绝对路径,255字符内;此URL要保证外网能访问 reqHandler.setParameter("nonce_str", Utils.random()); //随机字符串,必填项,不长于 32 位 reqHandler.setParameter("charset", "UTF-8"); //字符集 reqHandler.setParameter("sign_type", "MD5"); //签名方式 reqHandler.setParameter("is_raw", "1"); //原生JS值 reqHandler.setParameter("device_info", ""); //终端设备号 reqHandler.setParameter("sub_openid", ""); //测试账号不传值,此处默认给空值。正式账号必须传openid值,获取openid值指导文档地址:http://www.cnblogs.com/txw1958/p/weixin76-user-info.html reqHandler.setParameter("callback_url", ""); //前台地址 交易完成后跳转的 URL,需给绝对路径,255字 符 内 格 式如:http://wap.tenpay.com/callback.asp reqHandler.setParameter("goods_tag", ""); //商品标记 reqHandler.createSign(); //创建签名 //以上参数进行签名 string data = Utils.toXml(reqHandler.getAllParameters()); //生成XML报文 Dictionary <string, string> reqContent = new Dictionary <string, string>(); reqContent.Add("url", reqHandler.getGateUrl()); reqContent.Add("data", data); PayHttpClient pay = new PayHttpClient(); pay.setReqContent(reqContent); if (!pay.call()) { return(JSONHelper.FromString(false, pay.getErrInfo())); } ClientResponseHandler resHandler = new ClientResponseHandler(); resHandler.setContent(pay.getResContent()); resHandler.setKey("9d101c97133837e13dde2d32a5054abb"); Hashtable param = resHandler.getAllParameters(); if (!resHandler.isTenpaySign()) { return(JSONHelper.FromString(false, param["message"].ToString())); } //当返回状态与业务结果都为0时才返回,其它结果请查看接口文档 if (int.Parse(param["status"].ToString()) != 0 || int.Parse(param["result_code"].ToString()) != 0) { return(JSONHelper.FromString(false, param["err_msg"].ToString())); } return(JSONHelper.FromJsonString(true, param["pay_info"].ToString())); }