Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }
Example #4
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));
        }
Example #5
0
        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);
        }
Example #6
0
 /// <summary>
 /// 修改一条记录
 /// </summary>
 /// <param name="model">实体对象</param>
 /// <returns></returns>
 public bool Edit(PayCBLog model)
 {
     return(dal.Update(model));
 }
Example #7
0
 /// <summary>
 /// 添加一条记录,没有任何逻辑
 /// </summary>
 /// <param name="model">实体对象</param>
 /// <returns></returns>
 public int Add(PayCBLog model)
 {
     return(dal.Add(model));
 }