/// <summary> /// 修改 (可能有其他业务逻辑检查) /// </summary> /// <param name="model"></param> /// <returns></returns> public ResultInfo Update(PayCBLog model) { ResultInfo ri = new ResultInfo(); if (Edit(model)) { ri.Ok = true; ri.Msg = "修改成功"; } return(ri); }
/// <summary> /// 保存 (可能有其他业务逻辑检查) /// </summary> /// <param name="model">实体</param> /// <returns></returns> public ResultInfo Create(PayCBLog model) { ResultInfo ri = new ResultInfo(); if (model == null) { return(ri); } int result = Add(model); if (result > 0) { ri.Ok = true; ri.Msg = "添加成功"; } return(ri); }
/// <summary> /// 更新一条数据 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool Update(PayCBLog model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update PayCBLog set "); strSql.Append("CallBackTime=@CallBackTime,TradeNo=@TradeNo,TradeStatus=@TradeStatus,Memo=@Memo,IsDelete=@IsDelete,IsPay=@IsPay"); strSql.Append(" where PayCBLogID=@PayCBLogID"); SqlParameter[] parameters = { new SqlParameter("@CallBackTime", model.CallBackTime), new SqlParameter("@TradeNo", model.TradeNo), new SqlParameter("@TradeStatus", model.TradeStatus), new SqlParameter("@Memo", model.Memo), new SqlParameter("@IsDelete", model.IsDelete), new SqlParameter("@IsPay", model.IsPay), new SqlParameter("@PayCBLogID", model.PayCBLogID) }; return(SqlHelper.ExecuteSql(strSql.ToString(), CommandType.Text, parameters) > 0); }
/// <summary> /// 添加一条数据 /// </summary> /// <param name="model"></param> /// <returns></returns> public int Add(PayCBLog model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into PayCBLog("); strSql.Append(" CallBackTime,TradeNo,TradeStatus,Memo,IsDelete,IsPay )"); strSql.Append(" values ("); strSql.Append("@CallBackTime,@TradeNo,@TradeStatus,@Memo,@IsDelete,@IsPay)"); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@CallBackTime", model.CallBackTime), new SqlParameter("@TradeNo", model.TradeNo), new SqlParameter("@TradeStatus", model.TradeStatus), new SqlParameter("@Memo", model.Memo), new SqlParameter("@IsDelete", model.IsDelete), new SqlParameter("@IsPay", model.IsPay), }; object obj = SqlHelper.GetSingle(strSql.ToString(), CommandType.Text, parameters); return(obj == null ? 0 : Convert.ToInt32(obj)); }
private string PayCallBack(Action <BXTOrder> callback, string requestParams = null) { string result = "fail"; StringBuilder sb = new StringBuilder(); PayCBLog paylog = new PayCBLog(); paylog.IsPay = 0; string out_trade_no = string.Empty; string total_amount = string.Empty; string receipt_amount = string.Empty; string trade_status = string.Empty; try { sb.AppendLine("开始获取参数组:"); //string requestParams = Request.Form.ToString().Replace("?", string.Empty); sb.AppendLine(requestParams); //获取所有get请求的参数 var parms = AliPayBLL.Instance.GetRequestGet(requestParams); sb.AppendLine(JsonHelper.ToJson(parms)); //签名校验对比 bool isSign = AlipaySignature.RSACheckV1(parms, AliPayConfig.alipay_public_key, AliPayConfig.charset, AliPayConfig.sign_type, false); if (Convert.ToDateTime(parms["notify_time"]) <= DateTime.Now.AddMonths(-10)) { return(result); } if (isSign) { sb.AppendLine("两者签名一致"); out_trade_no = parms["out_trade_no"]; //获取商户订单号 total_amount = parms["total_amount"]; //订单金额 receipt_amount = parms["receipt_amount"]; //实收金额 trade_status = parms["trade_status"]; //交易状态:交易支付成功-TRADE_SUCCESS 交易结束,不可退款-TRADE_FINISHED sb.AppendLine("支付宝返回交易结果:商品订单号:{0},商品订单金额:{1},商品实收金额{2},商品交易状态:{3}".FormatWith(out_trade_no, total_amount, receipt_amount, trade_status)); //根据商品订单号获取实体数据 BXTOrder order = BXTOrderBLL.Instance.Search(out_trade_no); if (order.IsPay != 1) { if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS") { result = "success"; //记录支付成功 order.IsPay = 1; paylog.IsPay = 1; if (BXTOrderBLL.Instance.Update(order).Ok) { //回调 callback(order); } } } else { if (order.OrderType == 2 || order.OrderType == 4 || order.OrderType == 8) { result = "success"; callback(order); } } } else { sb.AppendLine("两者签名不一致!"); } } catch (Exception e) { sb.AppendLine("处理异常:" + e.ToString()); } //防止多次回调插数据 if (out_trade_no.IsNotNullOrEmpty() && PayCBLogBLL.Instance.Search(out_trade_no) == null) { paylog.CallBackTime = DateTime.Now; paylog.IsDelete = 0; paylog.Memo = sb.ToString(); paylog.TradeNo = out_trade_no; paylog.TradeStatus = trade_status; PayCBLogBLL.Instance.Add(paylog); } return(result); }
/// <summary> /// 修改一条记录 /// </summary> /// <param name="model">实体对象</param> /// <returns></returns> public bool Edit(PayCBLog model) { return(dal.Update(model)); }
/// <summary> /// 添加一条记录,没有任何逻辑 /// </summary> /// <param name="model">实体对象</param> /// <returns></returns> public int Add(PayCBLog model) { return(dal.Add(model)); }