Beispiel #1
0
        public string RefreshOrder(string CommunityId, string OrderId)
        {
            string ConnStr    = GetConnection(CommunityId);
            string BankResult = SearchBankOrder(CommunityId, OrderId);

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

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

            return("");
        }
Beispiel #2
0
        //取消下帐
        public static string NoAliUnderAccount(string CommunityId, string OrderId)
        {
            try
            {
                string ConnStr = GetConnection(CommunityId);

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

                //更改状态
                T_Order.IsSucc = 1;
                conn.Update <Tb_OL_UnionPayOrder>(T_Order);
                return("success");
            }
            catch (Exception E)
            {
                return(E.Message.ToString());
            }
        }
Beispiel #3
0
        /// <summary>
        /// 收款OrderId
        /// </summary>
        /// <param name="CommunityId"></param>
        /// <param name="OrderId"></param>
        public static void ReceCost(string CommunityId, string OrderId)
        {
            string ConnStr = GetConnection(CommunityId);

            Global_Var.CorpSQLConnstr = ConnStr;
            //查询账单信息
            IDbConnection       conn    = new SqlConnection(ConnStr);
            string              query   = "SELECT * FROM Tb_OL_UnionPayOrder WHERE orderId=@OrderId";
            Tb_OL_UnionPayOrder T_Order = conn.Query <Tb_OL_UnionPayOrder>(query, new { orderId = OrderId }).SingleOrDefault();

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

            //预存收款
            string  strUserCode = "_Sys_";
            string  Result      = "";
            string  ErrorMsg    = "";
            long    iReceID     = 0;
            decimal PrecAmount  = Convert.ToDecimal(T_Prec.DueAmount);

            ReceFeesPrec.ReceivePrecFees(T_Order.CommID, T_Order.CustId, T_Prec.RoomID, T_Prec.CostId.ToString(), "自助缴费", PrecAmount, strUserCode, ref Result, ref ErrorMsg, ref iReceID);

            //更新账单信息
            T_Order.IsSucc = 1;
            conn.Update(T_Order);

            T_Prec.PaidAmount = T_Prec.DueAmount;
            conn.Update(T_Prec);
        }
Beispiel #4
0
        public string CancelOrder(string CommunityId, string OrderId)
        {
            try
            {
                string ConnStr = GetConnection(CommunityId);

                Global_Var.CorpSQLConnstr = ConnStr;

                string BankResult = SearchBankOrder(CommunityId, OrderId);

                if (BankResult == "00")
                {
                    return(JSONHelper.FromString(false, "银行已交易成功,不能取消"));
                }
                if (BankResult == "01")
                {
                    return(JSONHelper.FromString(false, "订单状态异常,请稍后再试"));
                }
                IDbConnection       conn    = new SqlConnection(GetConnection(CommunityId));
                string              query   = "SELECT * FROM Tb_OL_UnionPayOrder WHERE orderId=@OrderId";
                Tb_OL_UnionPayOrder T_Order = conn.Query <Tb_OL_UnionPayOrder>(query, new { orderId = OrderId }).SingleOrDefault();

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

                SqlParameter[] parameters =
                {
                    new SqlParameter("@OrderId", SqlDbType.VarChar)
                };
                parameters[0].Value = OrderId;
                new DbHelperSQLP(ConnStr).RunProcedure("Proc_OL_UnionPayCancelOrder", parameters);
                return(JSONHelper.FromString(true, "取消订单成功"));
            }
            catch (Exception E)
            {
                return(JSONHelper.FromString(false, E.Message.ToString()));
            }
        }
Beispiel #5
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 OrderId)
 {
     try
     {
         string              ConnStr = GetConnection(CommunityId);
         IDbConnection       conn    = new SqlConnection(ConnStr);
         string              query   = "SELECT * FROM Tb_OL_UnionPayOrder WHERE orderId=@OrderId";
         Tb_OL_UnionPayOrder T_Order = conn.Query <Tb_OL_UnionPayOrder>(query, new { orderId = OrderId }).SingleOrDefault();
         if (T_Order.IsSucc.ToString() == "1")
         {
             //return "物业账单已下账";
         }
         ReceCost(CommunityId, OrderId);
         return("success");
     }
     catch (Exception E)
     {
         return(E.Message.ToString());
     }
 }
Beispiel #6
0
        public string SearchBankOrder(string CommunityId, string OrderId)
        {
            string Result = "";
            //SDKConfig con = new SDKConfig();
            bool IsConfig = GenerateConfig(CommunityId);

            if (IsConfig == false)
            {
                Result = "未配置证书文件";
                return(Result);
            }

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

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

            Dictionary <string, string> param = new Dictionary <string, string>();

            //以下信息非特殊情况不需要改动
            param["version"]     = "5.0.0";                   //版本号
            param["encoding"]    = "UTF-8";                   //编码方式
            param["certId"]      = CertUtil.GetSignCertId(s); //证书ID
            param["signMethod"]  = "01";                      //签名方法
            param["txnType"]     = "00";                      //交易类型
            param["txnSubType"]  = "00";                      //交易子类
            param["bizType"]     = "000000";                  //业务类型
            param["accessType"]  = "0";                       //接入类型
            param["channelType"] = "07";                      //渠道类型

            //TODO 以下信息需要填写
            param["orderId"] = OrderId.ToString();                //请修改被查询的交易的订单号,8-32位数字字母,不能含“-”或“_”,此处默认取demo演示页面传递的参数
            param["merId"]   = T_Order.merId.ToString();          //商户代码,请改成自己的测试商户号,此处默认取demo演示页面传递的参数
            param["txnTime"] = T_Order.txnTime.ToString();        //请修改被查询的交易的订单发送时间,格式为YYYYMMDDhhmmss,此处默认取demo演示页面传递的参数

            AcpService.Sign(param, System.Text.Encoding.UTF8, s); // 签名
            string url = s.SingleQueryUrl;

            Dictionary <String, String> rspData = AcpService.Post(param, url, System.Text.Encoding.UTF8, s);

            if (rspData.Count != 0)
            {
                if (AcpService.Validate(rspData, System.Text.Encoding.UTF8, s))
                {
                    //商户端验证返回报文签名成功
                    string respcode = rspData["respCode"]; //其他应答参数也可用此方法获取
                    if ("00" == respcode)
                    {
                        string origRespCode = rspData["origRespCode"]; //其他应答参数也可用此方法获取
                        //处理被查询交易的应答码逻辑
                        if ("00" == origRespCode)
                        {
                            //交易成功,更新商户订单状态
                            Result = "00";
                        }
                        else if ("03" == origRespCode || "04" == origRespCode || "05" == origRespCode)
                        {
                            //需再次发起交易状态查询交易
                            Result = "01";
                        }
                        else
                        {
                            //交易失败
                            Result = "交易失败";
                        }
                    }
                    else if ("03" == respcode || "04" == respcode || "05" == respcode)
                    {
                        //不明原因超时,后续继续发起交易查询。
                        Result = "01";
                    }
                    else
                    {
                        //其他应答码做以失败处理
                        Result = "查询操作失败:" + rspData["respMsg"].ToString();
                    }
                }
            }
            else
            {
                Result = "请求失败";
            }

            return(Result);
        }