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(""); }
//取消下帐 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()); } }
/// <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); }
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())); } }
/// <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()); } }
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); }