예제 #1
0
        /// <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("没找到小区");
            }
        }
예제 #2
0
        /// <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("没找到小区");
            }
        }
예제 #3
0
        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("");
        }
예제 #4
0
        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("");
        }
예제 #5
0
        /// <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()));
        }