/// <summary> /// 判断当前节点是否已存在相同的 /// </summary> /// <param name="entity"></param> /// <returns></returns> public int ExistNum(AssetReChargeEntity entity) { ///id=0,判断总数,ID>0判断除自己之外的总数 string sql = @"Select count(1) from dbo.[AssetReCharge] WITH(NOLOCK) "; string where = "where "; if (entity.Id == 0) { } else { } sql = sql + where; DbCommand cmd = db.GetSqlStringCommand(sql); if (entity.Id > 0) { db.AddInParameter(cmd, "@Id", DbType.Int32, entity.Id); } object identity = db.ExecuteScalar(cmd); if (identity == null || identity == DBNull.Value) { return(0); } return(Convert.ToInt32(identity)); }
/// <summary> /// 读取记录列表。 /// </summary> /// <param name="db">数据库操作对象</param> /// <param name="columns">需要返回的列,不提供任何列名时默认将返回所有列</param> public IList <AssetReChargeEntity> GetAssetReChargeAll() { string sql = @"SELECT [Id],[MemId],[Amt],[PayType],[BankCode],[TranSerialNum],[CardNo],[CreateTime],[IpAddress] from dbo.[AssetReCharge] WITH(NOLOCK) "; IList <AssetReChargeEntity> entityList = new List <AssetReChargeEntity>(); DbCommand cmd = db.GetSqlStringCommand(sql); using (IDataReader reader = db.ExecuteReader(cmd)) { while (reader.Read()) { AssetReChargeEntity entity = new AssetReChargeEntity(); entity.Id = StringUtils.GetDbInt(reader["Id"]); entity.MemId = StringUtils.GetDbInt(reader["MemId"]); entity.Amt = StringUtils.GetDbDecimal(reader["Amt"]); entity.PayType = StringUtils.GetDbInt(reader["PayType"]); entity.BankCode = StringUtils.GetDbString(reader["BankCode"]); entity.TranSerialNum = StringUtils.GetDbString(reader["TranSerialNum"]); entity.CardNo = StringUtils.GetDbString(reader["CardNo"]); entity.CreateTime = StringUtils.GetDbDateTime(reader["CreateTime"]); entity.IpAddress = StringUtils.GetDbString(reader["IpAddress"]); entityList.Add(entity); } } return(entityList); }
/// <summary> /// 根据主键值读取记录。如果数据库不存在这条数据将返回null /// </summary> /// <param name="db">数据库操作对象</param> /// <param name="columns">需要返回的列,不提供任何列名时默认将返回所有列</param> public AssetReChargeEntity GetAssetReCharge(int id) { string sql = @"SELECT [Id],[MemId],[Amt],[PayType],[BankCode],[TranSerialNum],[CardNo],[CreateTime],[IpAddress] FROM dbo.[AssetReCharge] WITH(NOLOCK) WHERE [Id]=@id" ; DbCommand cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "@Id", DbType.Int32, id); AssetReChargeEntity entity = new AssetReChargeEntity(); using (IDataReader reader = db.ExecuteReader(cmd)) { if (reader.Read()) { entity.Id = StringUtils.GetDbInt(reader["Id"]); entity.MemId = StringUtils.GetDbInt(reader["MemId"]); entity.Amt = StringUtils.GetDbDecimal(reader["Amt"]); entity.PayType = StringUtils.GetDbInt(reader["PayType"]); entity.BankCode = StringUtils.GetDbString(reader["BankCode"]); entity.TranSerialNum = StringUtils.GetDbString(reader["TranSerialNum"]); entity.CardNo = StringUtils.GetDbString(reader["CardNo"]); entity.CreateTime = StringUtils.GetDbDateTime(reader["CreateTime"]); entity.IpAddress = StringUtils.GetDbString(reader["IpAddress"]); } } return(entity); }
/// <summary> /// 插入一条记录到表AssetReCharge,如果表中存在自增字段,则返回值为新记录的自增字段值,否则返回0。 /// 该方法提供给界面等UI层调用 /// </summary> /// <param name="assetReCharge">要添加的AssetReCharge数据实体对象</param> public int AddAssetReCharge(AssetReChargeEntity assetReCharge) { if (assetReCharge.Id > 0) { return(UpdateAssetReCharge(assetReCharge)); } else if (AssetReChargeBLL.Instance.IsExist(assetReCharge)) { return((int)CommonStatus.ADD_Fail_Exist); } else { return(AssetReChargeDA.Instance.AddAssetReCharge(assetReCharge)); } }
/// <summary> /// 读取记录列表。 /// </summary> /// <param name="db">数据库操作对象</param> /// <param name="columns">需要返回的列,不提供任何列名时默认将返回所有列</param> public IList <AssetReChargeEntity> GetAssetReChargeList(int pagesize, int pageindex, ref int recordCount) { string sql = @"SELECT [Id],[MemId],[Amt],[PayType],[BankCode],[TranSerialNum],[CardNo],[CreateTime],[IpAddress] FROM (SELECT ROW_NUMBER() OVER (ORDER BY Id desc) AS ROWNUMBER, [Id],[MemId],[Amt],[PayType],[BankCode],[TranSerialNum],[CardNo],[CreateTime],[IpAddress] from dbo.[AssetReCharge] WITH(NOLOCK) WHERE 1=1 ) as temp where rownumber BETWEEN ((@PageIndex - 1) * @PageSize + 1) AND @PageIndex * @PageSize" ; string sql2 = @"Select count(1) from dbo.[AssetReCharge] with (nolock) "; IList <AssetReChargeEntity> entityList = new List <AssetReChargeEntity>(); DbCommand cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "@PageIndex", DbType.Int32, pageindex); db.AddInParameter(cmd, "@PageSize", DbType.Int32, pagesize); using (IDataReader reader = db.ExecuteReader(cmd)) { while (reader.Read()) { AssetReChargeEntity entity = new AssetReChargeEntity(); entity.Id = StringUtils.GetDbInt(reader["Id"]); entity.MemId = StringUtils.GetDbInt(reader["MemId"]); entity.Amt = StringUtils.GetDbDecimal(reader["Amt"]); entity.PayType = StringUtils.GetDbInt(reader["PayType"]); entity.BankCode = StringUtils.GetDbString(reader["BankCode"]); entity.TranSerialNum = StringUtils.GetDbString(reader["TranSerialNum"]); entity.CardNo = StringUtils.GetDbString(reader["CardNo"]); entity.CreateTime = StringUtils.GetDbDateTime(reader["CreateTime"]); entity.IpAddress = StringUtils.GetDbString(reader["IpAddress"]); entityList.Add(entity); } } cmd = db.GetSqlStringCommand(sql2); using (IDataReader reader = db.ExecuteReader(cmd)) { if (reader.Read()) { recordCount = StringUtils.GetDbInt(reader[0]); } else { recordCount = 0; } } return(entityList); }
/// <summary> /// 根据主键值更新记录的全部字段(注意:该方法不会对自增字段、timestamp类型字段以及主键字段更新!如果要更新主键字段,请使用Update方法)。 /// 如果数据库有数据被更新了则返回True,否则返回False /// </summary> /// <param name="db">数据库操作对象</param> /// <param name="assetReCharge">待更新的实体对象</param> public int UpdateAssetReCharge(AssetReChargeEntity entity) { string sql = @" UPDATE dbo.[AssetReCharge] SET [MemId]=@MemId,[Amt]=@Amt,[PayType]=@PayType,[BankCode]=@BankCode,[TranSerialNum]=@TranSerialNum,[CardNo]=@CardNo,[CreateTime]=@CreateTime,[IpAddress]=@IpAddress WHERE [Id]=@id"; DbCommand cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "@Id", DbType.Int32, entity.Id); db.AddInParameter(cmd, "@MemId", DbType.Int32, entity.MemId); db.AddInParameter(cmd, "@Amt", DbType.Decimal, entity.Amt); db.AddInParameter(cmd, "@PayType", DbType.Int32, entity.PayType); db.AddInParameter(cmd, "@BankCode", DbType.String, entity.BankCode); db.AddInParameter(cmd, "@TranSerialNum", DbType.String, entity.TranSerialNum); db.AddInParameter(cmd, "@CardNo", DbType.String, entity.CardNo); db.AddInParameter(cmd, "@CreateTime", DbType.DateTime, entity.CreateTime); db.AddInParameter(cmd, "@IpAddress", DbType.String, entity.IpAddress); return(db.ExecuteNonQuery(cmd)); }
/// <summary> /// 插入一条记录到表AssetReCharge,如果表中存在自增字段,则返回值为新记录的自增字段值,否则返回0 /// </summary> /// <param name="db">数据库操作对象</param> /// <param name="assetReCharge">待插入的实体对象</param> public int AddAssetReCharge(AssetReChargeEntity entity) { string sql = @"insert into AssetReCharge( [MemId],[Amt],[PayType],[BankCode],[TranSerialNum],[CardNo],[CreateTime],[IpAddress])VALUES ( @MemId,@Amt,@PayType,@BankCode,@TranSerialNum,@CardNo,@CreateTime,@IpAddress); SELECT SCOPE_IDENTITY();" ; DbCommand cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "@MemId", DbType.Int32, entity.MemId); db.AddInParameter(cmd, "@Amt", DbType.Decimal, entity.Amt); db.AddInParameter(cmd, "@PayType", DbType.Int32, entity.PayType); db.AddInParameter(cmd, "@BankCode", DbType.String, entity.BankCode); db.AddInParameter(cmd, "@TranSerialNum", DbType.String, entity.TranSerialNum); db.AddInParameter(cmd, "@CardNo", DbType.String, entity.CardNo); db.AddInParameter(cmd, "@CreateTime", DbType.DateTime, entity.CreateTime); db.AddInParameter(cmd, "@IpAddress", DbType.String, entity.IpAddress); object identity = db.ExecuteScalar(cmd); if (identity == null || identity == DBNull.Value) { return(0); } return(Convert.ToInt32(identity)); }
/// <summary> /// 阿里支付通知 /// </summary> public void PayAliPayNotify() { SortedDictionary <string, string> sPara = GetRequestPost(); LogUtil.Log("订单付款回调接口,订单号:", ""); if (sPara.Count > 0)//判断是否有带返回参数 { alipayNotify aliNotify = new alipayNotify(); bool verifyResult = aliNotify.Verify(sPara, Request.Form["notify_id"], Request.Form["sign"]); //验证消息是否是支付宝发出的合法消息 if (verifyResult) //验证成功 { LogUtil.Log("订单付款回调成功:", ""); ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 //商户订单号 string out_trade_no = Request.Form["out_trade_no"]; //支付宝交易号 string trade_no = Request.Form["trade_no"]; LogUtil.Log("订单付款回调成功:", out_trade_no); LogUtil.Log("订单付款回调成功:", trade_no); //交易状态 //&trade_no = 2016101021001004470296721955 string trade_status = Request.Form["trade_status"]; // string buyer_email = Request.Form["buyer_email"]; //lgzh306%40126.com string buyer_id = Request.Form["buyer_id"]; //2088602184028472 string exterface = Request.Form["exterface"]; //create_direct_pay_by_user string is_success = Request.Form["is_success"]; //T string notify_id = Request.Form["notify_id"]; //RqPnCoPT3K9%252Fvwbh3InWeOSzrvky7IAV3JJOfdsL5TFWKbTMC8BGq%252Bm99WAaYWgnOmS6 string notify_time = Request.Form["notify_time"]; //2016-10-10+15%3A48%3A34 string notify_type = Request.Form["notify_type"]; //trade_status_sync string payment_type = Request.Form["payment_type"]; //1 string seller_email = Request.Form["seller_email"]; //20718505%40qq.com string seller_id = Request.Form["seller_id"]; //2088421564177650 string subject = Request.Form["subject"]; //111 string total_fee = Request.Form["total_fee"]; //0.01 PayAliResultEntity _entity = new PayAliResultEntity(); _entity.Buyeremail = buyer_email; _entity.Buyerid = buyer_id; _entity.CreateTime = DateTime.Now; _entity.HasDeal = 0; _entity.Issuccess = is_success; _entity.Notifytime = notify_time; _entity.Notifytype = notify_type; _entity.Outtradeno = out_trade_no; _entity.Paymenttype = payment_type; _entity.Selleremail = seller_email; _entity.Sellerid = seller_id; _entity.Subject = subject; _entity.Totalfee = total_fee; _entity.Tradeno = trade_no; _entity.Tradestatus = trade_status; LogUtil.Log("订单付款回调成功:", JsonJC.ObjectToJson(_entity)); PayAliResultBLL.Instance.AddPayAliResult(_entity); //http://pay.ddbbqp.com/return_url.aspx?buyer_email=lgzh306%40126.com&buyer_id=2088602184028472&exterface=create_direct_pay_by_user&is_success=T¬ify_id=RqPnCoPT3K9%252Fvwbh3InWeOSzrvky7IAV3JJOfdsL5TFWKbTMC8BGq%252Bm99WAaYWgnOmS6¬ify_time=2016-10-10+15%3A48%3A34¬ify_type=trade_status_sync&out_trade_no=test20161010092017&payment_type=1&seller_email=20718505%40qq.com&seller_id=2088421564177650&subject=111&total_fee=0.01&trade_no=2016101021001004470296721955&trade_status=TRADE_SUCCESS&sign=4d4f0c35e95f4dce7c34c1ff70e321fd&sign_type=MD5 LogUtil.Log("订单付款回调成功:", "222222"); if (Request.Form["trade_status"] == "TRADE_FINISHED" || Request.Form["trade_status"] == "TRADE_SUCCESS") { LogUtil.Log("订单付款回调成功:", "33333333333"); //判断该笔订单是否在商户网站中已经做过处理 VWOrderEntity _order = OrderBLL.Instance.GetVWOrderByCode(StringUtils.GetDbLong(out_trade_no)); if (_order.Status == (int)OrderStatus.WaitPay) { LogUtil.Log("订单付款回调成功:", "44444444"); AssetReChargeEntity _asset = new AssetReChargeEntity(); _asset.Amt = StringUtils.GetDbDecimal(_entity.Totalfee); _asset.BankCode = buyer_id; _asset.CardNo = buyer_email; _asset.TranSerialNum = trade_no; _asset.CreateTime = DateTime.Now; _asset.MemId = _order.MemId; _asset.IpAddress = IPAddress.IP; _asset.PayType = 1; LogUtil.Log("订单付款回调成功:", "555555"); if (OrderBLL.Instance.PayFinished(StringUtils.GetDbLong(out_trade_no), _asset) > 0) { EmailSendBLL.Instance.OrderRemind(out_trade_no); LogUtil.Log("订单付款成功,订单号:", out_trade_no.ToString()); } else { LogUtil.Log("订单付款成功更新失败,订单号:", out_trade_no.ToString()); } } //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 } else { LogUtil.Log("订单付款成功更新失败,订单号:", out_trade_no.ToString() + " 订单状态:" + Request.QueryString["trade_status"]); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { LogUtil.Log("订单付款支付验证失败", "111"); } } }
/// <summary> /// 更新一条AssetReCharge记录。 /// 该方法提供给界面等UI层调用 /// </summary> /// <param name="assetReCharge">待更新的实体对象</param> /// <param name="columns">要更新的列名,不提供任何列名时默认将更新主键之外的所有列</param> public int UpdateAssetReCharge(AssetReChargeEntity assetReCharge) { return(AssetReChargeDA.Instance.UpdateAssetReCharge(assetReCharge)); }
/// <summary> /// 判断对象是否存在 /// </summary> /// <param name="dicEnum"></param> /// <returns></returns> public bool IsExist(AssetReChargeEntity assetReCharge) { return(AssetReChargeDA.Instance.ExistNum(assetReCharge) > 0); }
/// <summary> /// 付款完成 /// </summary> /// <param name="ordercode"></param> /// <param name="_asset"></param> /// <returns></returns> public int PayFinished(long ordercode, AssetReChargeEntity _asset) { return(OrderDA.Instance.PayFinished(ordercode, _asset)); }