Example #1
0
        /// <summary>
        /// 取消下帐
        /// </summary>
        /// <param name="CommunityId"></param>
        /// <param name="OrderId"></param>
        /// <returns></returns>
        public static string NoReceProperyOrder(string CommunityId, string OrderId)
        {
            try
            {
                string ConnStr = GetConnection(CommunityId);

                IDbConnection        conn    = new SqlConnection(GetConnection(CommunityId));
                string               query   = "SELECT * FROM Tb_OL_WeiXinPayOrder WHERE out_trade_no=@OrderId";
                Tb_OL_WeiXinPayOrder T_Order = conn.Query <Tb_OL_WeiXinPayOrder>(query, new { orderId = OrderId }).SingleOrDefault();
                if (T_Order.IsSucc.ToString() == "0")
                {
                    return("物业账单未下账");
                }
                conn.Dispose();
                conn = new SqlConnection(GetConnection(CommunityId));

                //更改状态
                T_Order.IsSucc = 0;
                conn.Update <Tb_OL_WeiXinPayOrder>(T_Order);
                return("success");
            }
            catch (Exception E)
            {
                return(E.Message.ToString());
            }
        }
Example #2
0
        public string RefreshOrder(string CommunityId, string out_trade_no)
        {
            string               strcon     = PubConstant.GetConnectionString("APPConnection");
            string               BankResult = SearchBankOrder(CommunityId, out_trade_no);
            IDbConnection        conn       = new SqlConnection(strcon);
            string               query      = "SELECT * FROM Tb_OL_WeiXinOrder WHERE out_trade_no=@out_trade_no";
            Tb_OL_WeiXinPayOrder T_Order    = conn.Query <Tb_OL_WeiXinPayOrder>(query, new { out_trade_no = out_trade_no }).SingleOrDefault();

            if (BankResult == "00")
            {
                //更新订单状态
                UpdateProperyOrder(T_Order.CommunityId.ToString(), T_Order.out_trade_no.ToString(), BankResult, "成功");
                if (T_Order.IsSucc.ToString() != "1")
                {
                    //下账
                    ReceProperyOrder(T_Order.CommunityId.ToString(), T_Order.out_trade_no.ToString());
                    return(JSONHelper.FromString(true, "订单状态已更新并下账成功,请刷新订单"));
                }
                else
                {
                    return(JSONHelper.FromString(true, "订单状态已更新,请刷新订单"));
                }
            }
            else
            {
                //更新订单状态
                UpdateProperyOrder(T_Order.CommunityId.ToString(), T_Order.out_trade_no.ToString(), BankResult, "失败");
            }

            return("");
        }
Example #3
0
        /// <summary>
        /// 物业订单收款
        /// </summary>
        /// <param name="CommunityId"></param>
        /// <param name="OrderId"></param>
        /// <param name="respCode"></param>
        /// <param name="respmsg"></param>
        /// <returns></returns>
        public static string ReceProperyOrder(string CommunityId, string out_trade_no, int?OrderType = null)
        {
            try
            {
                string ConnStr = GetConnection(CommunityId);

                IDbConnection        conn    = new SqlConnection(ConnStr);
                string               query   = "SELECT * FROM Tb_OL_WeiXinPayOrder WHERE out_trade_no=@out_trade_no";
                Tb_OL_WeiXinPayOrder T_Order = conn.Query <Tb_OL_WeiXinPayOrder>(query, new { out_trade_no = out_trade_no }).SingleOrDefault();
                if (T_Order.IsSucc.ToString() == "1")
                {
                    return(SetNotifyResult("FAIL", "物业账单已下账"));
                }

                string result = ReceCost(CommunityId, out_trade_no, OrderType);
                if (string.IsNullOrEmpty(result))
                {
                    return(SetNotifyResult("SUCCESS", "已下账"));
                }

                return(result);
            }
            catch (Exception E)
            {
                return(SetNotifyResult("FAIL", E.Message.ToString() + E.InnerException + E.StackTrace));
            }
        }
Example #4
0
        public static string ReceCost(string CommunityId, string out_trade_no, int?OrderType = null)
        {
            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 }).FirstOrDefault();

            if (T != null)
            {
                PubConstant.hmWyglConnectionString = GetConnectionStr(T);
                Global_Var.CorpSQLConnstr          = PubConstant.hmWyglConnectionString;
            }
            conn.Dispose();

            //查询账单信息
            conn  = new SqlConnection(PubConstant.hmWyglConnectionString);
            query = "SELECT * FROM Tb_OL_WeiXinPayOrder WHERE out_trade_no=@out_trade_no";
            Tb_OL_WeiXinPayOrder T_Order = conn.Query <Tb_OL_WeiXinPayOrder>(query, new { out_trade_no = out_trade_no }).SingleOrDefault();

            query = "SELECT * FROM Tb_OL_WeiXinPayDetail_Prec WHERE PayOrderId=@PayOrderId";
            Tb_OL_WeiXinPayDetail_Prec T_Prec = conn.Query <Tb_OL_WeiXinPayDetail_Prec>(query, new { PayOrderId = T_Order.Id.ToString() }).SingleOrDefault();

            //预存收款
            string strUserCode = "_Sys_";
            string Result      = "";
            string ErrorMsg    = "";
            string chargeMode  = "微信";

            if (T.CorpID == 1973)
            {
                chargeMode = "自助缴费-微信";
            }

            if (OrderType == 2)
            {
                chargeMode = "自助缴费-京东";
            }
            long    iReceID    = 0;
            decimal PrecAmount = Convert.ToDecimal(T_Prec.DueAmount);

            ReceFeesPrec.ReceivePrecFees(AppGlobal.StrToInt(T_Order.CommID.ToString()), T_Order.CustId, T_Prec.RoomID, T_Prec.CostId.ToString(), chargeMode, PrecAmount, strUserCode, ref Result, ref ErrorMsg, ref iReceID, GetHandID(PubConstant.hmWyglConnectionString, out_trade_no));

            if (string.IsNullOrEmpty(ErrorMsg))
            {
                //更新账单信息
                T_Order.IsSucc = 1;
                conn.Update(T_Order);

                T_Prec.PaidAmount = T_Prec.DueAmount;
                conn.Update(T_Prec);
            }

            return(iReceID + Result + ErrorMsg);
        }
Example #5
0
        public string CancelOrder(string CommunityId, string out_trade_no)
        {
            try
            {
                string ConnStr = GetConnection(CommunityId);
                Global_Var.CorpSQLConnstr = ConnStr;

                string BankResult = SearchBankOrder(CommunityId, out_trade_no);

                if (BankResult == "SUCCESS")
                {
                    return(JSONHelper.FromString(false, "银行已交易成功,不能取消"));
                }

                IDbConnection        conn    = new SqlConnection(GetConnection(CommunityId));
                string               query   = "SELECT * FROM Tb_OL_WeiXinPayOrder WHERE out_trade_no=@out_trade_no";
                Tb_OL_WeiXinPayOrder T_Order = conn.Query <Tb_OL_WeiXinPayOrder>(query, new { out_trade_no = out_trade_no }).SingleOrDefault();

                if (T_Order.return_code.Trim().ToString() == "SUCCESS")
                {
                    return(JSONHelper.FromString(false, "物业账单银行已付款"));
                }
                if (T_Order.IsSucc.ToString() == "1")
                {
                    return(JSONHelper.FromString(false, "物业账单已下账"));
                }

                SqlParameter[] parameters =
                {
                    new SqlParameter("@OrderId", SqlDbType.VarChar)
                };
                parameters[0].Value = out_trade_no;
                new DbHelperSQLP(ConnStr).RunProcedure("Proc_OL_WeiXinPayCancelOrder", parameters);
                return(JSONHelper.FromString(true, "取消订单成功"));
            }
            catch (Exception E)
            {
                return(JSONHelper.FromString(false, E.Message.ToString()));
            }
        }
Example #6
0
        /// <summary>
        /// 物业订单收款
        /// </summary>
        /// <param name="CommunityId"></param>
        /// <param name="OrderId"></param>
        /// <param name="respCode"></param>
        /// <param name="respmsg"></param>
        /// <returns></returns>
        public static string ReceProperyOrder(string CommunityId, string out_trade_no)
        {
            try
            {
                string strcon = PubConstant.GetConnectionString("APPConnection");

                IDbConnection        conn    = new SqlConnection(strcon);
                string               query   = "SELECT * FROM Tb_OL_WeiXinPayOrder WHERE out_trade_no=@out_trade_no";
                Tb_OL_WeiXinPayOrder T_Order = conn.Query <Tb_OL_WeiXinPayOrder>(query, new { out_trade_no = out_trade_no }).SingleOrDefault();
                if (T_Order.IsSucc.ToString() == "1")
                {
                    return(SetNotifyResult("FAIL", "物业账单已下账"));
                }
                ReceFees(CommunityId, out_trade_no);

                return(SetNotifyResult("SUCCESS", "已下账"));
            }
            catch (Exception E)
            {
                return(SetNotifyResult("FAIL", E.Message.ToString()));
            }
        }
Example #7
0
        public string SearchBankOrder(string CommunityId, string out_trade_no)
        {
            string Result = "";

            WxPayConfig          wxPayConfig = GenerateConfig(CommunityId);
            string               strcon      = PubConstant.GetConnectionString("APPConnection");
            IDbConnection        conn        = new SqlConnection(strcon);
            string               query       = "SELECT * FROM Tb_OL_WeiXinPayOrder WHERE out_trade_no=@out_trade_no";
            Tb_OL_WeiXinPayOrder T_Order     = conn.Query <Tb_OL_WeiXinPayOrder>(query, new { out_trade_no = out_trade_no }).SingleOrDefault();

            if (T_Order == null)
            {
                Result = "未找到该物业订单";
                return(Result);
            }

            WxPayData data = new WxPayData();

            data.SetValue("out_trade_no", out_trade_no);
            WxPayData BankResult = WxPayApi.OrderQuery(data);//提交订单查询请求给API,接收返回数据

            Result = BankResult.GetValue("trade_state").ToString();
            return(Result);
        }