Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
        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;
                }
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 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"]);
 }
Esempio n. 5
0
        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();
            }
        }
Esempio n. 6
0
        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;
        }
Esempio n. 7
0
        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();
            }
        }
Esempio n. 8
0
        //        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();
            }
        }
Esempio n. 9
0
        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("无通知参数");
            }
        }