public void AddVerified(NetPayInfo oParam, int userSysNo) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { this.Insert(oParam); this.Verify(oParam.SysNo, userSysNo); scope.Complete(); } }
protected void btnEnter_Click(object sender, EventArgs e) { if (txtTradeNo.Text != string.Empty) { int Result = 0; bool IsAdd = true; int SOSysNo = Int32.Parse(lblSOID.Text.Substring(1)); SOAlipayInfo oInfo = SaleManager.GetInstance().LoadSOAlipay(SOSysNo); if (oInfo == null) { oInfo = new SOAlipayInfo(); oInfo.SOSysNo = SOSysNo; oInfo.AlipayTradeNo = txtTradeNo.Text.Trim(); Result = SaleManager.GetInstance().InsertSOAlipay(oInfo); lblResult.Text = "输入支付宝交易号完成!"; } else { IsAdd = false; oInfo.AlipayTradeNo = txtTradeNo.Text.Trim(); Result = SaleManager.GetInstance().UpdateSOAlipay(oInfo); lblResult.Text = "更新支付宝交易号完成!"; } if (Result == 1) { SOInfo order = SaleManager.GetInstance().LoadSOMaster(SOSysNo); if (order != null) { if (IsAdd) { NetPayInfo netpay = new NetPayInfo(); netpay.SOSysNo = SOSysNo; netpay.PayTypeSysNo = order.PayTypeSysNo; netpay.InputTime = DateTime.Now; netpay.Source = (int)AppEnum.NetPaySource.Bank; netpay.PayAmount = order.GetTotalAmt(); netpay.Status = (int)AppEnum.NetPayStatus.Origin; netpay.Note = "支付宝即时到帐付款"; NetPayManager.GetInstance().Insert(netpay); } } lblResult.Visible = true; } } }
public int Insert(NetPayInfo oParam) { string sql = @"INSERT INTO Finance_NetPay ( SOSysNo, PayTypeSysNo, PayAmount, Source, InputTime, InputUserSysNo, ApproveUserSysNo, ApproveTime, Note, Status ) VALUES ( @SOSysNo, @PayTypeSysNo, @PayAmount, @Source, @InputTime, @InputUserSysNo, @ApproveUserSysNo, @ApproveTime, @Note, @Status );set @SysNo = SCOPE_IDENTITY();"; SqlCommand cmd = new SqlCommand(sql); SqlParameter paramSysNo = new SqlParameter("@SysNo", SqlDbType.Int,4); SqlParameter paramSOSysNo = new SqlParameter("@SOSysNo", SqlDbType.Int,4); SqlParameter paramPayTypeSysNo = new SqlParameter("@PayTypeSysNo", SqlDbType.Int,4); SqlParameter paramPayAmount = new SqlParameter("@PayAmount", SqlDbType.Decimal,9); SqlParameter paramSource = new SqlParameter("@Source", SqlDbType.Int,4); SqlParameter paramInputTime = new SqlParameter("@InputTime", SqlDbType.DateTime); SqlParameter paramInputUserSysNo = new SqlParameter("@InputUserSysNo", SqlDbType.Int,4); SqlParameter paramApproveUserSysNo = new SqlParameter("@ApproveUserSysNo", SqlDbType.Int,4); SqlParameter paramApproveTime = new SqlParameter("@ApproveTime", SqlDbType.DateTime); SqlParameter paramNote = new SqlParameter("@Note", SqlDbType.NVarChar,200); SqlParameter paramStatus = new SqlParameter("@Status", SqlDbType.Int,4); paramSysNo.Direction = ParameterDirection.Output; if ( oParam.SOSysNo != AppConst.IntNull) paramSOSysNo.Value = oParam.SOSysNo; else paramSOSysNo.Value = System.DBNull.Value; if ( oParam.PayTypeSysNo != AppConst.IntNull) paramPayTypeSysNo.Value = oParam.PayTypeSysNo; else paramPayTypeSysNo.Value = System.DBNull.Value; if ( oParam.PayAmount != AppConst.DecimalNull) paramPayAmount.Value = oParam.PayAmount; else paramPayAmount.Value = System.DBNull.Value; if ( oParam.Source != AppConst.IntNull) paramSource.Value = oParam.Source; else paramSource.Value = System.DBNull.Value; if ( oParam.InputTime != AppConst.DateTimeNull) paramInputTime.Value = oParam.InputTime; else paramInputTime.Value = System.DBNull.Value; if ( oParam.InputUserSysNo != AppConst.IntNull) paramInputUserSysNo.Value = oParam.InputUserSysNo; else paramInputUserSysNo.Value = System.DBNull.Value; if ( oParam.ApproveUserSysNo != AppConst.IntNull) paramApproveUserSysNo.Value = oParam.ApproveUserSysNo; else paramApproveUserSysNo.Value = System.DBNull.Value; if ( oParam.ApproveTime != AppConst.DateTimeNull) paramApproveTime.Value = oParam.ApproveTime; else paramApproveTime.Value = System.DBNull.Value; if ( oParam.Note != AppConst.StringNull) paramNote.Value = oParam.Note; else paramNote.Value = System.DBNull.Value; if ( oParam.Status != AppConst.IntNull) paramStatus.Value = oParam.Status; else paramStatus.Value = System.DBNull.Value; cmd.Parameters.Add(paramSysNo); cmd.Parameters.Add(paramSOSysNo); cmd.Parameters.Add(paramPayTypeSysNo); cmd.Parameters.Add(paramPayAmount); cmd.Parameters.Add(paramSource); cmd.Parameters.Add(paramInputTime); cmd.Parameters.Add(paramInputUserSysNo); cmd.Parameters.Add(paramApproveUserSysNo); cmd.Parameters.Add(paramApproveTime); cmd.Parameters.Add(paramNote); cmd.Parameters.Add(paramStatus); return SqlHelper.ExecuteNonQuery(cmd, out oParam.SysNo); }
private void map(NetPayInfo oParam, DataRow tempdr) { oParam.SysNo = Util.TrimIntNull(tempdr["SysNo"]); oParam.SOSysNo = Util.TrimIntNull(tempdr["SOSysNo"]); oParam.PayTypeSysNo = Util.TrimIntNull(tempdr["PayTypeSysNo"]); oParam.PayAmount = Util.TrimDecimalNull(tempdr["PayAmount"]); oParam.Source = Util.TrimIntNull(tempdr["Source"]); oParam.InputTime = Util.TrimDateNull(tempdr["InputTime"]); oParam.InputUserSysNo = Util.TrimIntNull(tempdr["InputUserSysNo"]); oParam.ApproveUserSysNo = Util.TrimIntNull(tempdr["ApproveUserSysNo"]); oParam.ApproveTime = Util.TrimDateNull(tempdr["ApproveTime"]); oParam.Note = Util.TrimNull(tempdr["Note"]); oParam.Status = Util.TrimIntNull(tempdr["Status"]); }
private void Abandon(NetPayInfo dbInfo) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { Hashtable ht = new Hashtable(5); ht.Add("SysNo", dbInfo.SysNo); ht.Add("Status", (int)AppEnum.NetPayStatus.Abandon); new NetPayDac().Update(ht); scope.Complete(); } }
public NetPayInfo LoadVerified(int soSysNo) { NetPayInfo oInfo = null; TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { string sql = "select * from finance_netpay where sosysno =" + soSysNo + " and status=" + (int)AppEnum.NetPayStatus.Verified; DataSet ds = SqlHelper.ExecuteDataSet(sql); if ( Util.HasMoreRow(ds)) { oInfo = new NetPayInfo(); map(oInfo, ds.Tables[0].Rows[0]); } scope.Complete(); } return oInfo; }
public void Insert(NetPayInfo oParam) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { new NetPayDac().Insert(oParam); scope.Complete(); } }
// public void UnVerify(NetPayInfo oParam) // { // TransactionContext ctx = // TransactionContextFactory.GetContext(TransactionAffinity.Required); // try // { // ctx.Enter(); // // NetPayInfo dbInfo = Load(oParam.SysNo); // if ( dbInfo.Status != (int)AppEnum.NetPayStatus.Verified) // throw new BizException("netpay: not verified, can't cancel verify"); // // oParam.Status = (int)AppEnum.NetPayStatus.Origin; // // Hashtable ht = new Hashtable(5); // ht.Add("SysNo", oParam.SysNo); // ht.Add("ApproveUserSysNo", oParam.ApproveUserSysNo); // ht.Add("ApproveTime", oParam.ApproveTime); // ht.Add("Status", oParam.Status); // // new NetPayDac().Update(ht); // // //??????????????????????? // //SOIncomeManager.GetInstance().Delete((int)AppEnum.SOIncomeOrderType.SO, oParam.SOSysNo); // // // } // catch(Exception ex) // { // ctx.VoteRollback(); // throw ex; // } // finally // { // ctx.Exit(); // } // } public void Import() { /* �漰������ * 1 ������¼�Ĵ��� * 2 ���Ĵ��� * 3 ״̬�Ĵ��� * 4 ���е���id�Ķ�Ӧ�����Ҫ�ر�ע�� */ if ( !AppConfig.IsImportable) throw new BizException("Is Importable is false"); string sql = " select top 1 sysno from finance_netpay"; DataSet ds = SqlHelper.ExecuteDataSet(sql); if ( Util.HasMoreRow(ds) ) throw new BizException("the table finance_netpay is not empty"); TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { //��Ϊԭ��û��inputuser��������1 string sql_old = @"select a.sosysno, a.payamount, a.source, a.inputtime, con_paytype.newsysno as paytypesysno, con_user.newsysno as approveUserSysno, a.approveTime, a.note, a.status, '1' as inputusersysno, '1' as sysno from ipp2003..net_pay as a, ippconvert..paytype as con_paytype, ippconvert..sys_user as con_user where a.paytypesysno = con_paytype.oldsysno and a.approveusersysno *= con_user.oldsysno --and status <>-1 order by sosysno, a.status desc"; DataSet ds_old = SqlHelper.ExecuteDataSet(sql_old); if ( !Util.HasMoreRow(ds_old) ) return; //int currentSoSysNo = AppConst.IntNull; foreach(DataRow dr in ds_old.Tables[0].Rows) { /* oldstatus * -1 deleted * 0 origin * 1 aduited * * oldsource * 0 bank insert * 1 employee insert * �����ݵĹ����ǣ�ֻ����������ͬ��sosysno�ĵ�һ�� */ NetPayInfo oNetPay = new NetPayInfo(); map(oNetPay, dr); // if ( currenSoSysNo != oNetPay.SOSysNo ) // { // currenSoSysNo = oNetPay.SOSysNo; // this.Insert(oNetPay); // } this.Insert(oNetPay); } scope.Complete(); } }
protected void Page_Load(object sender, EventArgs e) { SortedDictionary<string, string> sPara = GetRequestPost(); if (sPara.Count > 0)//判断是否有带返回参数 { Notify aliNotify = new Notify(); bool verifyResult = aliNotify.Verify(sPara, Request.Form["notify_id"], Request.Form["sign"]); //TODO: //上线需要verifyResult==true if (!verifyResult)//验证成功 { ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 //商户订单号 string out_trade_no = Request.Form["out_trade_no"]; //支付宝交易号 string trade_no = Request.Form["trade_no"]; //交易状态 string trade_status = Request.Form["trade_status"]; if (Request.Form["trade_status"] == "TRADE_FINISHED") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //该种交易状态只在两种情况下出现 //1、开通了普通即时到账,买家付款成功后。 //2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。 } else if (Request.Form["trade_status"] == "TRADE_SUCCESS") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。 } else { } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— try { //更新自己数据库的订单语句,请自己填写一下 string SOsysno = Request.Form["out_trade_no"]; int sosysno = Int32.Parse(SOsysno); if (NetPayManager.GetInstance().IsPayedForAlipay(sosysno)) { Response.Write("fail"); return; } SOInfo order = SaleManager.GetInstance().LoadSOMaster(sosysno); if (order != null) { NetPayInfo netpay = new NetPayInfo(); netpay.SOSysNo = Int32.Parse(SOsysno); netpay.PayTypeSysNo = order.PayTypeSysNo; netpay.InputTime = DateTime.Now; netpay.Source = (int)AppEnum.NetPaySource.Bank; netpay.PayAmount = decimal.Parse(Request.Form["total_fee"]); netpay.Status = (int)AppEnum.NetPayStatus.Origin; //netpay.Note = Request.QueryString["msg"]; NetPayManager.GetInstance().Insert(netpay); if (netpay.PayAmount >= order.GetTotalAmt()) { //客人通过网上支付后,自动修改订单状态为已付款,默认为ias审核,userSysNo=33 NetPayManager.GetInstance().Verify(netpay.SysNo, 33); Response.Write("success"); } else { Response.Write("success"); } } else { Response.Write("fail"); } } catch { Response.Write("fail"); } } else//验证失败 { Response.Write("fail"); } } else { Response.Write("无通知参数"); } }