예제 #1
0
        /// <summary>
        /// 根据公司编号及支付接口类型设置是否加入支付圈电子协议签约
        /// </summary>
        /// <param name="companyId">公司编号</param>
        /// <param name="accountType">支付接口类型</param>
        /// <param name="isSign">是否加入支付圈电子协议签约</param>
        /// <returns></returns>
        public virtual bool SetIsSign(string companyId, EyouSoft.Model.TicketStructure.TicketAccountType accountType, bool isSign)
        {
            DbCommand cmd = this._db.GetSqlStringCommand(SQL_UPDATE_SetIsSign);

            this._db.AddInParameter(cmd, "IsSign", DbType.AnsiStringFixedLength, isSign ? "1" : "0");
            this._db.AddInParameter(cmd, "CompanyId", DbType.AnsiStringFixedLength, companyId);
            this._db.AddInParameter(cmd, "AccountType", DbType.Byte, accountType);

            return(DbHelper.ExecuteSql(cmd, this._db) == 1 ? true : false);
        }
예제 #2
0
        /// <summary>
        /// 绑定支付帐户信息
        /// </summary>
        protected void BindAccount()
        {
            string account              = Utils.GetQueryStringValue("account");             //支付帐户信息
            int    accountType          = Utils.GetInt(Request.QueryString["accountType"]); //接口类型
            string currentUserCompanyId = SiteUserInfo.CompanyID;                           //当前用户的公司ID

            //判断接口类型是否有效
            if (accountType < 1 || accountType > 7)//无效
            {
                Utils.ResponseMeg(false, "无效的接口类型");
                return;
            }

            //判断支付帐户信息是否为空
            if (account == string.Empty)//为空
            {
                Utils.ResponseMeg(false, "支付帐户信息不能为空");
                return;
            }

            EyouSoft.Model.TicketStructure.TicketAccountType ticketAccountType =
                (EyouSoft.Model.TicketStructure.TicketAccountType)accountType;

            EyouSoft.IBLL.TicketStructure.ITicketCompanyAccount bll =
                EyouSoft.BLL.TicketStructure.TicketCompanyAccount.CreateInstance();

            bool result = bll.AddTicketCompanyAccount(new EyouSoft.Model.TicketStructure.TicketCompanyAccount()
            {
                AccountNumber = account,
                CompanyId     = currentUserCompanyId,
                InterfaceType = ticketAccountType,
                IsSign        = false
            });

            if (result)
            {
                string qianyueUrl = GetQianYueUrl(ticketAccountType, account);//获取签约URL

                Response.Clear();
                Response.Write("{isBind:true,isSign:false,success:'1',accountNumber:'" + account + "',qianyueurl:'" + qianyueUrl + "'}");
                Response.End();
            }
            else
            {
                Utils.ResponseMeg(false, "绑定失败,请稍候再试!");
            }
        }
예제 #3
0
        /// <summary>
        /// 查询用户是否已经加入支付圈
        /// </summary>
        protected void IsSign()
        {
            int    accountType          = Utils.GetInt(Request.QueryString["accountType"]); //接口类型
            string currentUserCompanyId = SiteUserInfo.CompanyID;                           //当前用户的公司ID

            //判断接口类型是否有效
            if (accountType < 1 || accountType > 7)//无效
            {
                Utils.ResponseMeg(false, "无效的接口类型");
                return;
            }

            //接口类型
            EyouSoft.Model.TicketStructure.TicketAccountType ticketAccountType =
                (EyouSoft.Model.TicketStructure.TicketAccountType)accountType;

            EyouSoft.IBLL.TicketStructure.ITicketCompanyAccount bll =
                EyouSoft.BLL.TicketStructure.TicketCompanyAccount.CreateInstance();

            EyouSoft.Model.TicketStructure.TicketCompanyAccount model =
                bll.GetModel(currentUserCompanyId, ticketAccountType);

            //判断是否已经绑定过当前接口类型的帐户信息
            if (model == null)//没有绑定过
            {
                Response.Clear();
                Response.Write("{isBind:false}");
                Response.End();
            }

            Response.Clear();
            if (!model.IsSign)                                                             //没有进行过签约
            {
                string qianyueUrl = GetQianYueUrl(ticketAccountType, model.AccountNumber); //获取用于签约的URL

                Response.Write("{isBind:true,isSign:" + model.IsSign.ToString().ToLower() + ",accountNumber:'" + model.AccountNumber + "',qianyueurl:'" + Server.UrlEncode(qianyueUrl) + "'}");
            }
            else//进行过签约
            {
                Response.Write("{isBind:true,isSign:true,accountNumber:'" + model.AccountNumber + "'}");
            }


            Response.End();
        }
예제 #4
0
        /// <summary>
        /// 根据支付接口,生成相应的签约URL
        /// </summary>
        /// <param name="type">支付接口类型</param>
        /// <param name="accountNumber">支付帐户</param>
        /// <returns></returns>
        private string GetQianYueUrl(EyouSoft.Model.TicketStructure.TicketAccountType type, string accountNumber)
        {
            string url = string.Empty;

            switch (type)
            {
            case EyouSoft.Model.TicketStructure.TicketAccountType.财付通:
                TrustRefund trust = new TrustRefund(TenpayParameters.Bargainor_ID);
                url = trust.CreateUrl();
                break;

            case EyouSoft.Model.TicketStructure.TicketAccountType.支付宝:
                QianYue qianyue = new QianYue(AlipayParameters.Partner, AlipayParameters.SignType, AlipayParameters.Key, AlipayParameters.Input_Charset, accountNumber);
                url = qianyue.Create_url();
                break;
            }

            return(url);
        }
예제 #5
0
        /// <summary>
        /// 支付回调函数
        /// </summary>
        /// <param name="PayNumber">支付接口返回的交易号</param>
        /// <param name="PayState">交易状态</param>
        /// <param name="Remark">备注(更新后的备注=原来的+现在的)</param>
        /// <param name="TradeNo">提交到支付接口的交易号</param>
        /// <param name="BatchNo">批次号(没有批次号null)</param>
        /// <param name="PayType">支付接口类型</param>
        /// <param name="ItemId">记录项的ID</param>
        /// <param name="ItemType">记录项的类型</param>
        /// <param name="CurrCompanyId">当前操作公司编号</param>
        /// <param name="CurrUserId">当前操作用户编号</param>
        /// <returns>返回true表示成功</returns>
        public virtual bool PayCallback(string PayNumber, EyouSoft.Model.TicketStructure.PayState PayState, string Remark,
                                        string TradeNo, string BatchNo, EyouSoft.Model.TicketStructure.TicketAccountType PayType,
                                        out string ItemId, out EyouSoft.Model.TicketStructure.ItemType?ItemType, out string CurrCompanyId, out string CurrUserId)
        {
            ItemId        = string.Empty;
            ItemType      = null;
            CurrCompanyId = string.Empty;
            CurrUserId    = string.Empty;

            if (string.IsNullOrEmpty(PayNumber) || string.IsNullOrEmpty(TradeNo))
            {
                return(false);
            }

            bool      IsResult = false;
            DbCommand dc       = this._dataBase.GetStoredProcCommand("proc_TicketPay_PayCallback");

            this._dataBase.AddInParameter(dc, "PayNumber", DbType.String, PayNumber);
            this._dataBase.AddInParameter(dc, "PayState", DbType.Byte, (int)PayState);
            this._dataBase.AddInParameter(dc, "Remark", DbType.String, Remark);
            this._dataBase.AddInParameter(dc, "TradeNo", DbType.String, TradeNo);
            this._dataBase.AddInParameter(dc, "BatchNo", DbType.String, BatchNo);
            this._dataBase.AddInParameter(dc, "PayType", DbType.Byte, (int)PayType);

            using (IDataReader dr = DbHelper.RunReaderProcedure(dc, this._dataBase))
            {
                if (dr.Read())
                {
                    ItemId = dr["ItemId"].ToString();
                    if (!dr.IsDBNull(dr.GetOrdinal("ItemType")))
                    {
                        ItemType = (EyouSoft.Model.TicketStructure.ItemType) int.Parse(dr["ItemType"].ToString());
                    }
                    CurrCompanyId = dr["CurrCompanyId"].ToString();
                    CurrUserId    = dr["CurrUserId"].ToString();

                    IsResult = true;
                }
            }

            return(IsResult);
        }
예제 #6
0
        /// <param name="opearType">操作类型</param>
        private void OrderOperate(string opearType)
        {
            string OrderNum = Utils.GetFormValue("OrderId"); //订单ID
            bool   result   = false;                         //保存操作结果
            string ErrorStr = string.Empty;

            if (!string.IsNullOrEmpty(opearType))
            {
                if (opearType == "0")        //只能执行采购商信息修改操作
                {
                    string mobile = Utils.GetFormValue("Mobile");
                    if (!Utils.IsMobile(mobile))
                    {
                        Utils.ResponseMeg(false, "采购商手机号码填写错误!");
                        return;
                    }
                    result = EyouSoft.BLL.TicketStructure.TicketOrder.CreateInstance().UpdateBuyerContact(OrderNum, Utils.GetFormValue("CompanyName"), Utils.GetFormValue("LinkName"), mobile, Utils.GetFormValue("Address"));
                }
                else if (opearType == "5")         //服务备注
                {
                    result = EyouSoft.BLL.TicketStructure.TicketOrder.CreateInstance().UpdateServiceRemark(OrderNum, Utils.GetFormValue("Content"));
                }
                else if (opearType == "6")      //修改特殊备注
                {
                    result = EyouSoft.BLL.TicketStructure.TicketOrder.CreateInstance().UpdateBuyerRemark(OrderNum, Utils.GetFormValue("Content"));
                }
                else if (opearType == "InsertAccount")  //支付前处理操作
                {
                    string  orderId   = Utils.GetFormValue("orderId");
                    string  orderNo   = Utils.GetFormValue("orderNo");
                    string  sellCId   = Utils.GetFormValue("sellcId");
                    string  batchNo   = "";
                    string  total     = Utils.GetFormValue("total");
                    string  currUId   = SiteUserInfo.ID;
                    string  currCId   = SiteUserInfo.CompanyID;
                    string  payType   = Utils.GetFormValue("PayType");
                    decimal IntoRatio = decimal.Parse(AlipayParameters.TongyeFee);      //平台交易费
                    EyouSoft.IBLL.TicketStructure.ITicketCompanyAccount bll = EyouSoft.BLL.TicketStructure.TicketCompanyAccount.CreateInstance();
                    //当前只能判断支付宝接口的帐户
                    IList <EyouSoft.Model.TicketStructure.TicketCompanyAccount> list = bll.GetTicketCompanyAccountList(sellCId);
                    EyouSoft.Model.TicketStructure.ItemType?         itemType        = EyouSoft.Model.TicketStructure.ItemType.采购商付款到平台_订单;                                                  //流水金额记录项类型
                    IList <EyouSoft.Model.TicketStructure.TicketPay> payList         = EyouSoft.BLL.TicketStructure.TicketOrder.CreateInstance().GetPayList(orderId, itemType, orderNo, ""); //获取交易记录
                    EyouSoft.Model.TicketStructure.TicketAccountType accountType     = (EyouSoft.Model.TicketStructure.TicketAccountType)Utils.GetInt(payType);                              //获取支付类型
                    string sellAccount = "";                                                                                                                                                 //供应商账户
                    EyouSoft.Model.TicketStructure.TicketCompanyAccount accountModel = list.FirstOrDefault(i => i.InterfaceType == accountType);                                             //获取供应商账户实体
                    if (accountModel != null)
                    {
                        sellAccount = accountModel.AccountNumber;//赋值供应商账户
                    }
                    else
                    {
                        Utils.ResponseMegError();//如果对应接口账户不存在则输出失败
                        return;
                    }
                    if (payList == null || payList.Count == 0 || (payList != null && payList.Where(i => i.PayState == EyouSoft.Model.TicketStructure.PayState.交易完成).Count() < 1))
                    {
                        result = EyouSoft.BLL.TicketStructure.TicketOrder.CreateInstance().PayBefore(orderId, orderNo, sellAccount, IntoRatio, SiteUserInfo.ID, SiteUserInfo.CompanyID, Convert.ToDecimal(total), accountType, sellCId, "", out batchNo);
                    }
                    else if (payList != null && payList.Where(i => i.PayState == EyouSoft.Model.TicketStructure.PayState.交易完成).Count() > 0)
                    {
                        Utils.ResponseMeg(false, "你已经支付过,并且交易完成了!");
                        return;
                    }
                    else
                    {
                        result = true;
                    }
                }
                else        //退/作废/改/签操作
                {
                    EyouSoft.Model.TicketStructure.OrderChangeInfo changeinfo = new EyouSoft.Model.TicketStructure.OrderChangeInfo();
                    changeinfo.ChangeState     = EyouSoft.Model.TicketStructure.OrderChangeState.申请;
                    changeinfo.ChangeTime      = DateTime.Now;
                    changeinfo.ChangeUId       = this.SiteUserInfo.ID;
                    changeinfo.OrderId         = OrderNum;
                    changeinfo.ChangeId        = Guid.NewGuid().ToString();
                    changeinfo.Travellers      = new List <string>();
                    changeinfo.ChangeUFullName = SiteUserInfo.UserName;
                    //IList<string> ids = null;
                    string strids = Utils.GetFormValue("CheckperIds");
                    if (string.IsNullOrEmpty(strids))
                    {
                        Utils.ResponseMeg(false, "请选择旅客!");
                        return;
                    }
                    else
                    {
                        //ids = new List<string>();
                        foreach (string item in StringValidate.Split(strids, ","))
                        {
                            changeinfo.Travellers.Add(item);
                        }
                    }
                    IsTravellerStateSucces(changeinfo.Travellers);   //判断某旅客状态是否为退票成功
                    switch (opearType)
                    {
                    case "1":            //退票
                        changeinfo.RefundTicketType = (EyouSoft.Model.TicketStructure.RefundTicketType)Enum.Parse(typeof(EyouSoft.Model.TicketStructure.RefundTicketType), Utils.GetFormValue("Content"));
                        changeinfo.ChangeType       = EyouSoft.Model.TicketStructure.OrderChangeType.退票;
                        changeinfo.ChangeState      = EyouSoft.Model.TicketStructure.OrderChangeState.申请;
                        break;

                    case "2":        //作废
                        changeinfo.RefundTicketType = (EyouSoft.Model.TicketStructure.RefundTicketType)Enum.Parse(typeof(EyouSoft.Model.TicketStructure.RefundTicketType), Utils.GetFormValue("Content"));
                        changeinfo.ChangeType       = EyouSoft.Model.TicketStructure.OrderChangeType.作废;
                        changeinfo.ChangeState      = EyouSoft.Model.TicketStructure.OrderChangeState.申请;
                        break;

                    case "3":        //改期
                        changeinfo.ChangeRemark = Utils.GetFormValue("Content");
                        changeinfo.ChangeType   = EyouSoft.Model.TicketStructure.OrderChangeType.改期;
                        changeinfo.ChangeState  = EyouSoft.Model.TicketStructure.OrderChangeState.申请;
                        break;

                    case "4":        //改签
                        changeinfo.ChangeRemark = Utils.GetFormValue("Content");
                        changeinfo.ChangeType   = EyouSoft.Model.TicketStructure.OrderChangeType.改签;
                        changeinfo.ChangeState  = EyouSoft.Model.TicketStructure.OrderChangeState.申请;
                        break;

                    default:
                        break;
                    }
                    switch (EyouSoft.BLL.TicketStructure.TicketOrder.CreateInstance().SetOrderChange(changeinfo))
                    {
                    case 0:
                        result = true;
                        break;

                    case 1:
                        result   = false;
                        ErrorStr = "不能申请旅客状态变更!";
                        break;

                    case 2:
                        result = false;
                        break;
                    }
                }
                if (result)     //根据操作结果提示
                {
                    Utils.ResponseMeg(true, "操作成功!");
                    return;
                }
                else
                {
                    if (string.IsNullOrEmpty(ErrorStr))
                    {
                        ErrorStr = "操作失败!";
                    }
                    Utils.ResponseMeg(false, ErrorStr);
                    return;
                }
            }
        }
예제 #7
0
 /// <summary>
 /// 根据公司编号及支付接口类型设置是否加入支付圈电子协议签约
 /// </summary>
 /// <param name="companyId">公司编号</param>
 /// <param name="accountType">支付接口类型</param>
 /// <param name="isSign">是否加入支付圈电子协议签约</param>
 /// <returns></returns>
 public bool SetIsSign(string companyId, EyouSoft.Model.TicketStructure.TicketAccountType accountType, bool isSign)
 {
     return(idal.SetIsSign(companyId, accountType, isSign));
 }
예제 #8
0
        /// <summary>
        /// 根据账户类型和公司ID返回公司账户实体
        /// </summary>
        /// <param name="companyId">公司ID</param>
        /// <param name="accountType">账户类型</param>
        /// <returns></returns>
        public EyouSoft.Model.TicketStructure.TicketCompanyAccount GetModel(string companyId, EyouSoft.Model.TicketStructure.TicketAccountType accountType)
        {
            IList <EyouSoft.Model.TicketStructure.TicketCompanyAccount> list = GetTicketCompanyAccountList(companyId);

            EyouSoft.Model.TicketStructure.TicketCompanyAccount model = null;

            if (list != null)
            {
                model = list.FirstOrDefault(i => i.InterfaceType == accountType);
            }
            return(model);
        }
예제 #9
0
        /// <summary>
        /// 支付回调
        /// </summary>
        /// <param name="payNumber">支付接口返回的交易流水号</param>
        /// <param name="payprice">支付金额</param>
        /// <param name="paystate">支付状态</param>
        /// <param name="paytype">支付接口类型</param>
        /// <param name="payaccount">支付账号</param>
        /// <param name="paytradeno">提交到支付接口的交易号</param>
        /// <param name="paytime">支付时间</param>
        /// <param name="batchno">批次号</param>
        /// <returns></returns>
        public bool PayAfter(string payNumber, decimal?payprice, EyouSoft.Model.TicketStructure.PayState paystate, EyouSoft.Model.TicketStructure.TicketAccountType paytype, string payaccount, string paytradeno, DateTime?paytime, string batchno)
        {
            bool   result        = false;
            string itemId        = string.Empty;                     //项目编号
            string currCompanyId = string.Empty;                     //当前公司ID
            string currUserId    = string.Empty;                     //当前用户ID

            EyouSoft.Model.TicketStructure.ItemType?itemType = null; //流水明细记录项类型
            //回调后修改支付明细
            idalTicketPayList.PayCallback(payNumber, paystate, string.Empty, paytradeno, batchno, paytype, out itemId, out itemType, out currCompanyId, out currUserId);
            if (paystate == EyouSoft.Model.TicketStructure.PayState.交易完成 && itemType.Value == EyouSoft.Model.TicketStructure.ItemType.供应商付款到平台_购买运价)
            {
                result = idal.SetPayInfo(itemId, true, DateTime.Now);
            }

            #region 回写运价信息
            EyouSoft.Model.TicketStructure.TicketFreightBuyLog LogModel = idal.GetModelByOrderNo(paytradeno);
            if (LogModel != null)
            {
                if (LogModel.PackageType != EyouSoft.Model.TicketStructure.PackageTypes.常规 && !String.IsNullOrEmpty(LogModel.DestCityIds.Trim()))
                {
                    string[] tmpDestCityIdList   = LogModel.DestCityIds.Split(',');
                    string[] tmpDestCityNameList = LogModel.DestCityNames.Split(',');

                    IList <EyouSoft.Model.TicketStructure.TicketFreightInfo> FList = new List <EyouSoft.Model.TicketStructure.TicketFreightInfo>();
                    if (tmpDestCityIdList.Length > 0)
                    {
                        for (int i = 0; i < tmpDestCityIdList.Length; i++)
                        {
                            EyouSoft.Model.TicketStructure.TicketSeattle seattlemodel = EyouSoft.BLL.TicketStructure.TicketSeattle.CreateInstance().GetTicketSeattleById(Convert.ToInt32(tmpDestCityIdList[i]));
                            if (seattlemodel != null)
                            {
                                EyouSoft.Model.TicketStructure.TicketFreightInfo FModel = new EyouSoft.Model.TicketStructure.TicketFreightInfo();
                                FModel.Id = Guid.NewGuid().ToString();
                                EyouSoft.Model.CompanyStructure.Company CompanyModel = new EyouSoft.Model.CompanyStructure.Company();
                                CompanyModel.ID            = LogModel.CompanyId;
                                FModel.Company             = CompanyModel;
                                CompanyModel               = null;
                                FModel.FlightId            = LogModel.FlightId;
                                FModel.FlightName          = LogModel.FlightName;
                                FModel.RateType            = LogModel.RateType;
                                FModel.NoGadHomeCityId     = LogModel.HomeCityId;
                                FModel.NoGadHomeCityIdName = LogModel.HomeCityName;
                                FModel.NoGadDestCityId     = int.Parse(tmpDestCityIdList[i]);
                                FModel.NoGadDestCityName   = seattlemodel.Seattle;
                                FModel.BuyType             = LogModel.PackageType;
                                FModel.LastUpdateDate      = DateTime.Now;
                                FModel.IsEnabled           = false;
                                FModel.FreightBuyId        = LogModel.Id;
                                //FModel.FreightStartDate = LogModel.StartMonth;
                                //FModel.FreightEndDate = LogModel.EndMonth;
                                FList.Add(FModel);
                                FModel = null;
                            }
                        }
                        result = ifdal.AddFreightInfo(FList) > 0 ? true : false;
                        FList  = null;
                    }
                }
                LogModel = null;
            }
            #endregion

            return(result);
        }
예제 #10
0
        /// <summary>
        /// 购买运价套餐支付前添加支付流水明细信息
        /// </summary>
        /// <param name="orderid">订单ID</param>
        /// <param name="orderno">订单号</param>
        /// <param name="userid">当前操作人ID</param>
        /// <param name="companyid">当前操作公司ID</param>
        /// <param name="payprice">支付金额</param>
        /// <param name="paytype">支付接口类型</param>
        /// <param name="batch_no">批次号</param>
        /// <returns></returns>
        public bool AddTicketPay(string orderid, string orderno, string userid, string companyid, decimal payprice, EyouSoft.Model.TicketStructure.TicketAccountType paytype, out string batch_no)
        {
            EyouSoft.Model.TicketStructure.TicketPay model = new EyouSoft.Model.TicketStructure.TicketPay();
            model.ItemId        = orderid;
            model.TradeNo       = orderno;
            model.CurrCompanyId = companyid;
            model.CurrUserId    = userid;
            model.IssueTime     = DateTime.Now;
            model.PayPrice      = payprice;
            model.PayState      = EyouSoft.Model.TicketStructure.PayState.未提交到支付接口;
            model.PayType       = paytype;
            model.Remark        = string.Empty;
            model.ItemType      = EyouSoft.Model.TicketStructure.ItemType.供应商付款到平台_购买运价;
            bool Isresult = idalTicketPayList.AddTicketPay(model);

            batch_no = model.BatchNo;
            return(Isresult);
        }
예제 #11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string method = Utils.GetFormValue("method");

            this.Title = "支付-组团预定/散拼-机票";
            if (method != "InsertAccount")
            {
                this.Master.Naviagtion = AirTicketNavigation.团队预定散拼;
                orderBll = EyouSoft.BLL.TicketStructure.TicketOrder.CreateInstance();
                string orderId = Utils.GetQueryStringValue("orderId");
                orderInfo = orderBll.GetOrderInfoById(orderId);
                EyouSoft.Model.TicketStructure.TicketFlightCompany companyModel = EyouSoft.BLL.TicketStructure.TicketFlightCompany.CreateInstance().GetTicketFlightCompany(orderInfo.FlightId);
                if (companyModel != null)
                {
                    flightName = companyModel.AirportName;
                }


                companyName       = SiteUserInfo.CompanyName;
                contactName       = SiteUserInfo.ContactInfo.ContactName;
                address           = "";
                moible            = SiteUserInfo.ContactInfo.Mobile;
                buyInsCount       = orderInfo.Travellers.Where(i => i.IsBuyIns).Count();       //保险数
                buyItineraryCount = orderInfo.Travellers.Where(i => i.IsBuyItinerary).Count(); //行程单数
                supplierInfo      = EyouSoft.BLL.TicketStructure.TicketSupplierInfo.CreateInstance().GetSupplierInfo(orderInfo.SupplierCId);
                acl_rptCustomerList.DataSource = orderInfo.Travellers;
                acl_rptCustomerList.DataBind();
                list = EyouSoft.BLL.TicketStructure.TicketCompanyAccount.CreateInstance().GetTicketCompanyAccountList(orderInfo.SupplierCId);
            }
            else
            {
                string  payWhich    = Utils.GetFormValue("paywhich");
                string  freightType = Utils.GetFormValue("freightType");
                string  orderId     = Utils.GetFormValue("orderId");
                string  orderNo     = Utils.GetFormValue("orderNo");
                string  sellCId     = Utils.GetFormValue("sellcId");
                string  batchNo     = "";
                decimal total       = decimal.Parse(Utils.GetFormValue("total"));
                string  companyName = Utils.GetFormValue("companyname");
                string  contactName = Utils.GetFormValue("contactname");
                string  moible      = Utils.GetFormValue("moible");
                string  address     = Utils.GetFormValue("address");
                string  currUId     = SiteUserInfo.ID;
                string  currCId     = SiteUserInfo.CompanyID;
                string  theUrl      = GetPayUrl(payWhich, orderNo, total, freightType);
                decimal IntoRatio   = decimal.Parse(AlipayParameters.TongyeFee);                                                                         //平台交易费
                orderBll = EyouSoft.BLL.TicketStructure.TicketOrder.CreateInstance();
                orderBll.UpdateBuyerContact(orderId, companyName, contactName, moible, address);                                                         //修改订单联系方式
                EyouSoft.Model.TicketStructure.ItemType?         itemType = EyouSoft.Model.TicketStructure.ItemType.采购商付款到平台_订单;                         //流水金额记录项类型
                IList <EyouSoft.Model.TicketStructure.TicketPay> payList  = orderBll.GetPayList(orderId, itemType, orderNo, "");                         //获取交易记录
                list = EyouSoft.BLL.TicketStructure.TicketCompanyAccount.CreateInstance().GetTicketCompanyAccountList(sellCId);                          //获取供应商所有账户
                EyouSoft.Model.TicketStructure.TicketAccountType accountType = (EyouSoft.Model.TicketStructure.TicketAccountType)Utils.GetInt(payWhich); //获取支付类型
                string sellAccount = "";                                                                                                                 //供应商账户
                EyouSoft.Model.TicketStructure.TicketCompanyAccount accountModel = list.FirstOrDefault(i => i.InterfaceType == accountType);             //获取供应商账户实体
                if (accountModel != null)
                {
                    sellAccount = accountModel.AccountNumber; //赋值供应商账户
                }
                else
                {
                    Utils.ResponseMegError(); //如果对应接口账户不存在则输出失败
                    return;
                }
                if (payList == null || payList.Count == 0 || (payList != null && payList.Where(i => i.PayState == EyouSoft.Model.TicketStructure.PayState.交易完成).Count() < 1))//如果交易记录不存在或交易状态不是完成则添加支付前交易记录
                {
                    if (orderBll.PayBefore(orderId, orderNo, sellAccount, IntoRatio, SiteUserInfo.ID, SiteUserInfo.CompanyID, total, accountType, sellCId, "", out batchNo))
                    {
                        Utils.ResponseMeg(true, theUrl);
                    }
                    else
                    {
                        Utils.ResponseMegError();
                    }
                }

                else if (payList != null && payList.Where(i => i.PayState == EyouSoft.Model.TicketStructure.PayState.交易完成).Count() > 0)
                {
                    Utils.ResponseMeg(false, "你已经支付过,并且交易完成了!");
                }
                else
                {
                    Utils.ResponseMeg(true, theUrl);
                }
            }
        }