/// <summary>
    ///
    /// </summary>
    /// <returns></returns>
    private string Success()
    {
        string value = "";

        try
        {
            PbProject.Logic.Pay.AliPay alipay = new PbProject.Logic.Pay.AliPay();
            int type = alipay.ReturnType(Request.QueryString["notify_type"].ToString());
            if (type == 1)
            {
                //1.支付
                if (Request.QueryString["out_trade_no"] != null &&
                    Request.QueryString["trade_no"] != null &&
                    Request.QueryString["total_fee"] != null)
                {
                    string orderid  = Request.QueryString["out_trade_no"].ToString();
                    string onLineNo = Request.QueryString["trade_no"].ToString();
                    string price    = Request.QueryString["total_fee"].ToString();
                    value = "Sucess.aspx?PayType=1&ReturnType=1&OrderId=" + orderid + "&Price=" + price + "&OnLineNo=" + onLineNo;
                }
            }
            else if (type == 2)
            {
                //2.退款
            }
        }
        catch (Exception)
        {
        }
        return(value);
    }
Exemple #2
0
        /// <summary>
        /// 账号签约查询
        /// </summary>
        /// <param name="payType"></param>
        /// <param name="payAct"></param>
        /// <returns></returns>
        public string GetSign(string payType, string payAct)
        {
            string result = "";

            try
            {
                if (payType == "1")
                {
                    PbProject.Logic.Pay.AliPay aliPay = new PbProject.Logic.Pay.AliPay();
                    result = aliPay.GetUserSign(payAct);
                }
                else if (payType == "2")
                {
                    //快钱
                }
                else if (payType == "3")
                {
                    PbProject.Logic.Pay.ChinaPnr chinaPnr = new PbProject.Logic.Pay.ChinaPnr();
                    result = chinaPnr.Sign(payAct, payAct);
                }
                else if (payType == "4")
                {
                    //财付通
                }
                else
                {
                    result = "";
                }
            }
            catch (Exception)
            {
            }
            return(result);
        }
Exemple #3
0
        /// <summary>
        /// 账号签约查询
        /// </summary>
        /// <param name="payType"></param>
        /// <param name="payAct"></param>
        /// <returns></returns>
        public bool QuerySign(string payType, string payAct)
        {
            bool result = false;

            try
            {
                if (payType == "1")
                {
                    PbProject.Logic.Pay.AliPay aliPay = new PbProject.Logic.Pay.AliPay();
                    result = aliPay.IsUserSign(payAct);
                }
                else if (payType == "2")
                {
                    //快钱
                }
                else if (payType == "3")
                {
                    PbProject.Logic.Pay.ChinaPnr chinaPnr = new PbProject.Logic.Pay.ChinaPnr();
                    result = chinaPnr.QuerySign(payAct, payAct);
                }
                else if (payType == "4")
                {
                    //财付通
                }
                else
                {
                    result = false;
                }
            }
            catch (Exception)
            {
            }
            return(result);
        }
    /// <summary>
    /// 验证签约
    /// </summary>
    /// <returns></returns>
    private bool IsDataUrl()
    {
        if (Request.QueryString["sign"] != null && Request.QueryString["notify_id"] != null)
        {
            PbProject.Logic.Pay.AliPay alipay = new PbProject.Logic.Pay.AliPay();
            //接收地址
            string alipayNotifyURL = alipay._alipayreurl + "notify_id=" + Request.QueryString["notify_id"].ToString() + "&partner=" + alipay._partner;
            string key             = alipay._code;

            //获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的
            string responseTxt = alipay.Get_Http(alipayNotifyURL, 120000);
            //解析签名
            int i;
            NameValueCollection coll;
            coll = Request.QueryString;
            String[] requestarr = coll.AllKeys;
            //进行排序
            string[] Sortedstr = alipay.BubbleSort(requestarr);
            //构造待md5摘要字符串
            string prestr = "";
            for (i = 0; i < Sortedstr.Length; i++)
            {
                if (Request.QueryString[Sortedstr[i]] != "" && Sortedstr[i] != "sign" && Sortedstr[i] != "sign_type")
                {
                    if (i == Sortedstr.Length - 1)
                    {
                        prestr = prestr + Sortedstr[i] + "=" + Request.QueryString[Sortedstr[i]];
                    }
                    else
                    {
                        prestr = prestr + Sortedstr[i] + "=" + Request.QueryString[Sortedstr[i]] + "&";
                    }
                }
            }
            prestr = prestr + key;
            string mysign = alipay.GetMD5(prestr, "");
            string sign   = Request.QueryString["sign"];

            //验证支付发过来的消息,签名是否正确
            if (mysign == sign && responseTxt == "true")
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        return(false);
    }
Exemple #5
0
        private void button3_Click(object sender, EventArgs e)
        {
            PbProject.Model.User_Company mTopcom = new PbProject.Logic.User.User_CompanyBLL().GetCompany("100001000045");
            PbProject.Logic.ControlBase.Bd_Base_ParametersBLL Bp      = new PbProject.Logic.ControlBase.Bd_Base_ParametersBLL();
            List <PbProject.Model.Bd_Base_Parameters>         ParList = Bp.GetParametersListByCpyNo(mTopcom.UninCode.ToString());

            PbProject.Model.definitionParam.BaseSwitch BS = PbProject.WebCommon.Utility.BaseParams.getParams(ParList);

            PbProject.Logic.Pay.AliPay tempAlipay = new PbProject.Logic.Pay.AliPay();
            string         msg      = "";
            string         sqlWhere = " orderid='0130502163134897981'";
            BaseDataManage Manage   = new BaseDataManage(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\Dal.dll");
            List <PbProject.Model.Tb_Ticket_Order> orderList = Manage.CallMethod("Tb_Ticket_Order", "GetList", null, new object[] { sqlWhere }) as List <PbProject.Model.Tb_Ticket_Order>;

            PbProject.Model.Tb_Ticket_Order order = orderList[0];
            tempAlipay.QueryPriceByPNR(order, BS, ref msg);
        }
 /// <summary>
 /// 签约 充值收款账号
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void lbtnZFBSign_Repay_Click(object sender, EventArgs e)
 {
     try
     {
         if (!string.IsNullOrEmpty(txtZFB_Repay.Text.Trim()))
         {
             lbtnZFBSign.Visible = false;
             PbProject.Logic.Pay.AliPay aliPay = new PbProject.Logic.Pay.AliPay();
             Response.Write("<script> window.open('" + aliPay.GetUserSign(txtZFB_Repay.Text.Trim()) + "'); </script>");
         }
         else
         {
             Page.ClientScript.RegisterStartupScript(this.GetType(), DateTime.Now.Ticks.ToString(), "showdialog('请输入签约账号!');", true);
         }
     }
     catch (Exception ex)
     {
         Page.ClientScript.RegisterStartupScript(this.GetType(), DateTime.Now.Ticks.ToString(), "showdialog('操作错误!');", true);
     }
 }
Exemple #7
0
    /// <summary>
    /// CAE 自动代扣
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnCAEPay_Click(object sender, EventArgs e)
    {
        PbProject.Logic.Pay.AliPay alipay = new PbProject.Logic.Pay.AliPay();

        ///// <param name="type_code">代理业务编号</param>
        ///// <param name="out_order_no">商户订单号</param>
        ///// <param name="subject">支付标题:代扣</param>
        ///// <param name="amount">金额</param>
        ///// <param name="trans_account_out">转出支付宝账号</param>



        //string out_order_no = DateTime.Now.Ticks.ToString();//代理业务编号
        //string subject = "代扣"; //说明
        //string amount = "4.0"; // 订单金额
        //string trans_account_out = "*****@*****.**";  //代扣账号
        //string trans_account_in = "*****@*****.**";// 收款账号
        //string royalty_parameters = "[email protected]^3.00^测试代扣|[email protected]^1.00^测试代扣"; //分账明细,可以为空

        string out_order_no       = DateTime.Now.Ticks.ToString(); //代理业务编号
        string subject            = "代扣测试";                        //说明
        string amount             = "40.0";                        // 订单金额
        string trans_account_out  = "*****@*****.**";          // 代扣账号
        string trans_account_in   = "*****@*****.**";      //收款账号
        string royalty_parameters = "";                            //分账明细,可以为空


        string strValues = alipay.GetPayCAE(out_order_no, subject, amount, trans_account_out, trans_account_in, royalty_parameters);

        if (strValues.Contains("USER_PAY_TYPE_MISMATCH"))
        {
            //代扣账号没钱
        }

        //strValues = strValues.Replace("method='post'", "method='post' target='_blank'");

        Response.Write(strValues);
    }
    /// <summary>
    /// 保存 充值收款账号
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnZFBOK_Repay_Click(object sender, EventArgs e)
    {
        string msg = "";

        try
        {
            if (!string.IsNullOrEmpty(txtZFB_Repay.Text.Trim()))
            {
                PbProject.Logic.Pay.AliPay aliPay = new PbProject.Logic.Pay.AliPay();
                if (aliPay.IsUserSign(txtZFB_Repay.Text.Trim()))
                {
                    msg = BtnSave(0, 1, txtZFB_Repay.Text.Trim());
                }
                else
                {
                    msg = "账号未签约!";
                }
            }
            else
            {
                msg = "请输入签约账号!";
            }
        }
        catch (Exception ex)
        {
            msg = "操作错误!";
        }

        if (msg.Contains("成功"))
        {
        }
        else
        {
            lbtnZFBSign_Repay.Visible = true;
        }

        Page.ClientScript.RegisterStartupScript(this.GetType(), DateTime.Now.Ticks.ToString(), "showdialog('" + msg + "');", true);
    }
Exemple #9
0
    /// <summary>
    /// 退款处理
    /// </summary>
    /// <param name="payType">支付方式</param>
    /// <param name="oldOrderId">原支付订单号</param>
    /// <param name="newOrderId">退款订单号</param>
    /// <param name="onlineNo">在线交易号、退款流水号</param>
    /// <param name="price">订单金额</param>
    /// <param name="rate">手续费率</param>
    /// <param name="act">收款账号</param>
    /// <param name="detail">退款明细</param>
    /// <returns></returns>
    public string Refund(string payType, string oldOrderId, string newOrderId, string onlineNo, string price, string rate, string act, string detail)
    {
        string msg = "";

        try
        {
            string strOrderID       = newOrderId; //订单编号(退、废)
            string strOrderOldID    = oldOrderId; //原支付订单号
            string strOrderOnlineNo = onlineNo;   //交易号
            string strPrice         = price;      // 退款金额
            string strAct           = act;        //收款账号
            string details          = detail;     //退款明细


            decimal strRate = (!string.IsNullOrEmpty(rate)) ? decimal.Parse(rate) : 0.001M; //费率
            bool    result  = false;
            msg = (string.IsNullOrEmpty(strPrice)) ? "请输入退款金额!" : msg;
            msg = (string.IsNullOrEmpty(strAct)) ? "请输入收款账号!" : msg;
            decimal total = (!string.IsNullOrEmpty(strPrice)) ? decimal.Parse(strPrice) : 0; //订单退款金额
            total = total != 0 ? FourToFiveNum(total, 2) : total;

            if (payType == "1")
            {
                #region 支付宝
                msg = (string.IsNullOrEmpty(strOrderOnlineNo)) ? "请输入交易号!" : msg;
                msg = (strOrderOnlineNo.Length != 16) ? "交易号格式错误!" : msg;

                if (msg == "")
                {
                    PbProject.Logic.Pay.AliPay alipay = new PbProject.Logic.Pay.AliPay(false);

                    #region 处理
                    decimal priceRate = total * strRate; //费率
                    priceRate = FourToFiveNum(priceRate, 2);
                    decimal priceGy = total - priceRate; //供应退款
                    priceGy = FourToFiveNum(priceGy, 2);

                    if (string.IsNullOrEmpty(details))
                    {
                        details = strOrderOnlineNo + "^" + total.ToString("f2") + "^退款|" + act + "^^" + alipay._serveremail + "^^" + priceGy.ToString("f2") + "^退款";
                    }

                    if (strOrderOnlineNo != null && strOrderOnlineNo != "")
                    {
                        string bno = DateTime.Now.ToString("yyyyMMddHHmmsss");

                        string[] strValueS = new string[3];
                        strValueS[0] = bno;
                        strValueS[1] = "1";
                        strValueS[2] = details;

                        //退款
                        result = alipay.IsRefund(strValueS);

                        if (result == true)
                        {
                            msg = "数据提交成功,稍后请查询核对数据。。。";

                            #region 支付宝 查询退款

                            /*
                             * if (msg == "")
                             * {
                             *  string str = alipay.QueryRefundResultStr(strOrderOnlineNo);
                             *  string[] strs = str.Split('#');
                             *  for (int i = 0; i < strs.Length; i++)
                             *  {
                             *      if (!string.IsNullOrEmpty(strs[i]))
                             *      {
                             *          string[] strss = strs[i].Split('$');
                             *
                             *          if (!string.IsNullOrEmpty(strss[0]) && strss[0].Contains("SUCCESS"))
                             *          {
                             *              //退款成功
                             *              msg += "退款成功!银行卡 2 - 7个工作日到账,信用卡 2 - 14 个工作日到账!";
                             *              break;
                             *          }
                             *      }
                             *  }
                             * }
                             * */
                            #endregion
                        }
                        else
                        {
                            msg = "数据提交失败,请检测数据格式是否有误!!!";
                        }
                    }
                    #endregion
                }
                #endregion
            }
            else if (payType == "2")
            {
                #region 快钱
                msg = (string.IsNullOrEmpty(strOrderID)) ? "请输入订单号!" : msg;     //订单编号(退、废)
                msg = (string.IsNullOrEmpty(strOrderOldID)) ? "请输入原订单号!" : msg; //原支付订单号

                if (msg == "")
                {
                    #region 处理

                    PbProject.Logic.Pay._99Bill bill = new PbProject.Logic.Pay._99Bill(false);

                    string  dataTime  = DateTime.Now.ToString("yyyyMMddHHmmss");
                    decimal priceRate = total * strRate; //费率
                    priceRate = FourToFiveNum(priceRate, 2);
                    decimal priceGy = total - priceRate; //供应退款
                    priceGy = FourToFiveNum(priceGy, 2);

                    priceGy   = priceGy * 100;                              //供应退款
                    priceRate = priceRate * 100;                            //费率
                    total     = total * 100;                                //订单退款

                    int p1 = int.Parse(priceGy.ToString().Split('.')[0]);   //供应退款
                    int p2 = int.Parse(priceRate.ToString().Split('.')[0]); //费率
                    int p3 = int.Parse(total.ToString().Split('.')[0]);     //订单退款

                    //"1^[email protected]^5000^爱的|1^[email protected]^7000^分账1|1^[email protected]^8000^分账2";
                    if (string.IsNullOrEmpty(details))
                    {
                        details = "1^" + bill.LinkEmail + "^" + p2.ToString() + "^Refund|1^" + strAct + "^" + p1.ToString() + "^Refund";
                    }

                    string[] Details = new string[6];
                    Details[0] = strOrderOldID; // 订单编号(原订单号)
                    Details[1] = p3.ToString(); // 订单金额
                    Details[2] = "系统退款";        //备注
                    Details[3] = details;
                    Details[4] = strOrderID;    // 订单编号(退废订单编号)
                    Details[5] = dataTime;      //退款流水号


                    string str = bill.Refund(Details);

                    result = bill.IsRefund(str);
                    //result = true;

                    if (result == true)
                    {
                        msg = "数据提交成功,稍后请查询核对数据。。。";
                    }
                    else
                    {
                        msg = "数据提交失败,请检测数据格式是否有误!!!";
                    }

                    #endregion
                }
                #endregion
            }
            else if (payType == "3")
            {
                #region 汇付

                msg = (string.IsNullOrEmpty(strOrderID)) ? "请输入订单号!" : "";     //订单编号(退、废)
                msg = (string.IsNullOrEmpty(strOrderOldID)) ? "请输入原订单号!" : ""; //原支付订单号

                if (msg == "")
                {
                    #region 处理

                    PbProject.Logic.Pay.ChinaPnr chinaPnr = new PbProject.Logic.Pay.ChinaPnr(false);

                    string orderno = DateTime.Now.ToString("yyyyMMddHHmm");
                    string orderid = (strOrderID == strOrderOldID) ? orderno + "_" + strOrderOldID : strOrderID; //订单编号

                    decimal priceRate = total * strRate;                                                         //费率
                    priceRate = FourToFiveNum(priceRate, 2);
                    decimal priceGy = total - priceRate;                                                         //供应退款
                    priceGy = FourToFiveNum(priceGy, 2);

                    if (string.IsNullOrEmpty(details))
                    {
                        details = "Agent:" + act + ":" + priceGy.ToString("f2");
                    }

                    string[] Details = new string[4];
                    Details[0] = orderid;
                    Details[1] = strOrderOldID;
                    Details[2] = strPrice;
                    Details[3] = details;

                    string value = chinaPnr.Refund(Details[0], Details[1], Details[2], Details[3]);

                    if (value.Contains("RespCode=000000") && value.Contains("ErrMsg=成功"))
                    {
                        msg = "数据提交成功,稍后请查询核对数据。。。";
                    }
                    else
                    {
                        msg = "数据提交失败,请检测数据格式是否有误!!!";
                    }
                    #endregion
                }
                #endregion
            }
            else if (payType == "4")
            {
                #region 财付通


                #endregion
            }
            else
            {
                msg = "请选择支付方式";
            }
        }
        catch (Exception)
        {
        }

        return(msg);
    }
        /// <summary>
        /// 支付宝自动出票
        /// </summary>
        /// <param name="passengerManage"></param>
        /// <param name="order"></param>
        /// <param name="Log"></param>
        private void AlipayTicketWork(Tb_Ticket_PassengerBLL passengerManage, Tb_Ticket_Order order, ListParam LPm, B2BShowLog Log)
        {
            PbProject.Logic.Pay.AliPay alipay             = new PbProject.Logic.Pay.AliPay();
            PbProject.Model.definitionParam.BaseSwitch BS = new PbProject.Model.definitionParam.BaseSwitch();
            string GYCpyNo = order.CPCpyNo;

            if (GYCpyNo.Length >= 12)
            {
                GYCpyNo = GYCpyNo.Substring(0, 12);
                PbProject.Model.User_Company mTopcom = new PbProject.Logic.User.User_CompanyBLL().GetCompany(GYCpyNo);
                PbProject.Logic.ControlBase.Bd_Base_ParametersBLL Bp      = new PbProject.Logic.ControlBase.Bd_Base_ParametersBLL();
                List <PbProject.Model.Bd_Base_Parameters>         ParList = Bp.GetParametersListByCpyNo(mTopcom.UninCode.ToString());
                BS = PbProject.WebCommon.Utility.BaseParams.getParams(ParList);

                string msg         = "";
                string UpdateFiled = "";
                string sql         = "";
                try
                {
                    //锁定订单
                    sql = string.Format(" update Tb_Ticket_Order set LockCpyNo='{0}' ,LockTime='{1}',LockLoginName='系统管理员' where OrderId='{2}' ", GYCpyNo, System.DateTime.Now, order.OrderId);
                    Manage.ExecuteNonQuerySQLInfo(sql);

                    bool IsOk = alipay.AutoPay(order, BS, ref msg);
                    //失败请求次数默认
                    int times = 3;
                    try
                    {
                        times = string.IsNullOrEmpty(BS.AutoPayAccount.Split('^')[1]) ? 1 : Convert.ToInt32(BS.AutoPayAccount.Split('^')[1]);
                    }
                    catch (Exception)
                    {
                        Log(2, "错误:失败次数未取到, 订单号:" + order.OrderId + " " + BS.AutoPayAccount + "\r\n");
                    }
                    //请求成功
                    if (IsOk)
                    {
                        //添加操作订单的内容
                        string LogCon = "于 " + DateTime.Now + " 自动出票启动成功,请等待航空公司出票后系统自动回帖票号";
                        OrderLog(order.OrderId, LogCon, LPm, "1");
                        Log(2, string.Format("出票成功,订单ID{0}", order.OrderId) + "\r\n");
                        UpdateFiled = " A10=1 ,";//标识已请求成功
                    }
                    else
                    {
                        Log(2, string.Format("订单ID{0},出票信息:{1}", order.OrderId, msg) + "\r\n");
                        for (int i = 0; i < times; i++)
                        {
                            IsOk = alipay.AutoPay(order, BS, ref msg);
                            Log(2, string.Format("订单ID{0},出票信息:{1}", order.OrderId, msg) + "\r\n");
                            if (IsOk)
                            {
                                //添加操作订单的内容
                                string LogCon = "于 " + DateTime.Now + " 自动出票启动成功,请等待航空公司出票后系统自动回帖票号";
                                OrderLog(order.OrderId, LogCon, LPm, "1");
                                Log(2, string.Format("出票成功,订单ID{0}", order.OrderId) + "\r\n");
                                UpdateFiled = " A10=1 ,";//标识已请求成功
                                break;
                            }
                            if (i >= times - 1)
                            {
                                #region 记录操作日志
                                //记录日志
                                if (msg == "未查到符合支付价格的政策")
                                {
                                    msg = "与航空公司网站价格不符合";
                                }
                                string LogCon = "于 " + DateTime.Now + " 第" + (i + 1).ToString() + "次调用自动出票失败,失败原因:" + msg;
                                OrderLog(order.OrderId, LogCon, LPm, "1");
                                #endregion
                                UpdateFiled = " A10=2,AutoPrintFlag=0 ,";//标识已请求成功
                            }
                            Thread.Sleep(1);
                        }
                    }
                }
                catch (Exception ex)
                {
                    try
                    {
                        Log(2, "发生不可预料的异常:" + ex.Message + "该功能停止,请重新启动,如果继续发生请联系开发人员解决,谢谢!\r\n");
                        if (ex is ThreadAbortException)
                        {
                            return;
                        }
                    }
                    catch (Exception)
                    {
                    }
                }
                finally
                {
                    //解锁订单
                    sql = string.Format(" update Tb_Ticket_Order set " + UpdateFiled + " LockCpyNo='',LockLoginName='' ,LockTime='{0}' where OrderId='{1}' ", System.DateTime.Now, order.OrderId);
                    Manage.ExecuteNonQuerySQLInfo(sql);
                }
            }
        }
Exemple #11
0
        /// <summary>
        /// 退款查询
        /// </summary>
        /// <param name="payType">支付方式</param>
        /// <param name="oldOrderId">原支付订单号</param>
        /// <param name="newOrderId">退款订单号</param>
        /// <param name="onlineNo">在线交易号 、退款流水号</param>
        /// <returns></returns>
        public string RefundSel(string payType, string oldOrderId, string newOrderId, string onlineNo, out string msgShow)
        {
            string returnValue = "";

            msgShow = "";
            try
            {
                if (payType == "1" || payType == "5")
                {
                    #region 支付宝

                    PbProject.Logic.Pay.AliPay alipay = new PbProject.Logic.Pay.AliPay();
                    msgShow = (string.IsNullOrEmpty(onlineNo) || onlineNo.Length != 16) ? "请正确输入交易号!" : msgShow;

                    if (msgShow == "")
                    {
                        string   str  = alipay.QueryRefundResultStr(onlineNo);
                        string[] strs = str.Split('#');
                        for (int i = 0; i < strs.Length; i++)
                        {
                            if (!string.IsNullOrEmpty(strs[i]))
                            {
                                string[] strss = strs[i].Split('$');

                                if (!string.IsNullOrEmpty(strss[0]) && strss[0].Contains("SUCCESS"))
                                {
                                    //退款成功
                                    msgShow = "退款成功!银行卡 2 - 7个工作日到账,信用卡 2 - 14 个工作日到账!";
                                    break;
                                }
                            }
                        }
                        returnValue = str + "<br/>" + msgShow + "<br/>";
                    }

                    #endregion
                }
                else if (payType == "2" || payType == "6")
                {
                    #region 快钱

                    msgShow = (string.IsNullOrEmpty(newOrderId)) ? "请输入订单号!" : msgShow;
                    msgShow = (string.IsNullOrEmpty(oldOrderId)) ? "请输入原订单号!" : msgShow;
                    msgShow = (string.IsNullOrEmpty(onlineNo)) ? "请输入退款流水号!" : msgShow;

                    if (msgShow == "")
                    {
                        PbProject.Logic.Pay._99Bill bill = new PbProject.Logic.Pay._99Bill();

                        string[] strOrderNoS = onlineNo.Split('|');


                        for (int i = 0; i < strOrderNoS.Length; i++)
                        {
                            if (!string.IsNullOrEmpty(strOrderNoS[i]))
                            {
                                // strOrderNoS[i]; //快钱退款流水号

                                string str = bill.GetRefund(oldOrderId, strOrderNoS[i]);

                                if (str != null && str.Contains("<result>10</result>"))
                                {
                                    msgShow      = "退款成功!银行卡 2 - 7个工作日到账,信用卡 2 - 14 个工作日到账!";
                                    returnValue += str + "<br/>" + msgShow + "<br/>";
                                    break;
                                }
                                else if (str != null && (str.Contains("<result>00</result>") && str.Contains("<errCode></errCode>")))
                                {
                                    msgShow      = "退款进行中!需等待快钱审核!银行卡 2 - 7个工作日到账,信用卡 2 - 14 个工作日到账!";
                                    returnValue += str + "<br/>" + msgShow + "<br/>";
                                    break;
                                }
                                else
                                {
                                    msgShow      = "退款失败!";
                                    returnValue += str + "<br/>" + msgShow + "<br/>";
                                }
                            }
                        }
                    }
                    #endregion
                }
                else if (payType == "3" || payType == "7")
                {
                    #region 汇付

                    PbProject.Logic.Pay.ChinaPnr chinaPnr = new PbProject.Logic.Pay.ChinaPnr();

                    msgShow = (string.IsNullOrEmpty(onlineNo)) ? "请输入退款流水号!" : msgShow;

                    if (msgShow == "")
                    {
                        string[] strOrderNoS = onlineNo.Split('|');

                        for (int i = 0; i < strOrderNoS.Length; i++)
                        {
                            if (!string.IsNullOrEmpty(strOrderNoS[i]))
                            {
                                // strOrderNoS[i]; //汇付 退款订单号
                                //string str = chinaPnr.QueryRefundStatus(strOrderNoS[i]).Replace("#", "<br/>\n");
                                string str = chinaPnr.QueryRefundStatus(strOrderNoS[i]);

                                if (str != null && str.Contains("RespCode=000000") && str.Contains("ErrMsg=退款交易已成功"))
                                {
                                    msgShow      = " 退款成功!银行卡 2 - 7个工作日到账,信用卡 2 - 14 个工作日到账!";
                                    returnValue += str + "<br/>" + msgShow + "<br/>";
                                    break;
                                }
                                else if (str != null && str.Contains("RespCode=000000") && str.Contains("ErrMsg=退款交易,已扣款,系统处理中"))
                                {
                                    msgShow      = " 退款成功,退款中!银行卡 2 - 7个工作日到账,信用卡 2 - 14 个工作日到账!";
                                    returnValue += str + "<br/>" + msgShow + "<br/>";
                                    break;
                                }
                                else
                                {
                                    msgShow      = " 退款失败!";
                                    returnValue += str + "<br/>" + msgShow + "<br/>";
                                }
                            }
                        }
                    }
                    #endregion
                }
                else if (payType == "4" || payType == "8" || payType == "40")
                {
                    #region 财付通
                    TenPayParam tenPayParam = new TenPayParam();
                    tenPayParam.Orderid    = newOrderId;
                    tenPayParam.OldOrderid = oldOrderId;
                    tenPayParam.PayNo      = onlineNo;
                    tenPayParam.Date       = DateTime.Now.ToString("yyyyMMdd");
                    returnValue            = new TenPay().ClientSplitInquire(tenPayParam);
                    #endregion
                }
                else
                {
                    msgShow = "请选择支付方式";
                }
            }
            catch (Exception)
            {
            }
            return(returnValue);
        }
Exemple #12
0
        /// <summary>
        /// 支付查询
        /// </summary>
        /// <param name="payType">支付方式</param>
        /// <param name="oldOrderId">订单号</param>
        ///  <param name="IsOperOrder">true:更新订单等信息 、false:不跟新订单等信息</param>
        /// <param name="oldOrderId">out:提示消息</param>
        /// <returns></returns>
        public string PaySel(string payType, string oldOrderId, bool IsOperOrder, out string msgShow)
        {
            string strValue = "";

            msgShow = "";

            try
            {
                string  PayNo    = ""; //交易号
                decimal PayMoney = 0;  //交易金额

                PbProject.Logic.Pay.Bill payBill = new PbProject.Logic.Pay.Bill();

                if (payType == "1")
                {
                    msgShow += "支付宝:";

                    #region 支付宝

                    PbProject.Logic.Pay.AliPay aliPay = new PbProject.Logic.Pay.AliPay();

                    strValue = aliPay.TradeQuery(oldOrderId);

                    if (strValue.Contains("<error>TRADE_NOT_EXIST</error>"))
                    {
                        msgShow += "查询失败";
                    }
                    else if (strValue.Contains("<trade_status>TRADE_SUCCESS</trade_status>"))
                    {
                        msgShow += "交易成功";

                        XElement root = XElement.Parse(strValue);

                        if (root.Element("response") != null)
                        {
                            XElement xe = root.Element("response");

                            if (xe.Element("trade") != null)
                            {
                                XElement xe1 = xe.Element("trade");

                                //交易号
                                if (xe1.Element("trade_no") != null)
                                {
                                    PayNo    = xe1.Element("trade_no").Value;
                                    msgShow += " , 交易号:" + PayNo;
                                }

                                //交易金额
                                if (xe1.Element("total_fee") != null)
                                {
                                    PayMoney = decimal.Parse(xe1.Element("total_fee").Value);
                                    msgShow += " , 订单支付金额:" + PayMoney.ToString("f2");
                                }
                            }
                        }


                        if (IsOperOrder && msgShow.Contains("交易成功"))
                        {
                            payBill.CreateBillPayBill(oldOrderId, PayNo, 1, "", "在线支付", "支付宝支付", ""); // 支付
                        }
                    }
                    else
                    {
                        msgShow += "支付宝 未付";
                    }



                    #endregion

                    strValue = "支付宝查询结果:" + strValue;
                }
                else if (payType == "2")
                {
                    msgShow += "快钱:";

                    #region 快钱

                    PbProject.Logic.Pay._99Bill bill = new PbProject.Logic.Pay._99Bill();
                    strValue = bill.GetPayReturn(oldOrderId);

                    if (strValue.Contains("<payResult>10</payResult>"))
                    {
                        msgShow += "交易成功";
                        XElement root = XElement.Parse(strValue);
                        //交易号
                        if (root.Element("dealId") != null)
                        {
                            PayNo    = root.Element("dealId").Value;
                            msgShow += " , 交易号:" + PayNo;
                        }
                        //支付金额
                        if (root.Element("payAmount") != null)
                        {
                            PayMoney = decimal.Parse(root.Element("payAmount").Value);
                            PayMoney = PayMoney / 100;
                            msgShow += " , 订单支付金额:" + PayMoney.ToString("f2");
                        }
                        if (IsOperOrder && msgShow.Contains("交易成功"))
                        {
                            payBill.CreateBillPayBill(oldOrderId, PayNo, 2, "", "在线支付", "快钱支付", ""); // 支付
                        }
                        if (strValue.Contains("<sharingStatus>10</sharingStatus>"))
                        {
                            msgShow += ",分账成功";
                        }
                        else
                        {
                            msgShow += ",分账失败";
                        }
                    }
                    else
                    {
                        msgShow += "快钱 未付";
                    }
                    #endregion

                    strValue = "快钱查询结果:" + strValue;
                }
                else if (payType == "3")
                {
                    msgShow += "汇付:";

                    #region 汇付

                    PbProject.Logic.Pay.ChinaPnr chinaPnr = new PbProject.Logic.Pay.ChinaPnr();
                    strValue = chinaPnr.QueryStatus(oldOrderId);
                    if (strValue.Contains("CmdId=QueryStatus") && strValue.Contains("RespCode=000000") && strValue.Contains("已支付"))
                    {
                        msgShow += "交易成功";
                        msgShow += " , 交易号:" + DateTime.Now.ToString("yyyyMMddHHmmss");
                        msgShow += " , 订单支付金额:见订单";

                        if (IsOperOrder && msgShow.Contains("交易成功"))
                        {
                            payBill.CreateBillPayBill(oldOrderId, PayNo, 3, "", "在线支付", "汇付支付", ""); // 支付
                        }
                    }
                    else
                    {
                        msgShow += "汇付 未付";
                    }

                    #endregion

                    strValue = "汇付查询结果:" + strValue;
                }
                else if (payType == "4")
                {
                    msgShow += "财付通:";

                    #region 财付通
                    msgShow += "财付通暂时不支付查询";
                    #endregion

                    strValue = "汇付查询结果:" + msgShow;
                }
                else
                {
                    msgShow = "请选择支付方式";
                }
            }
            catch (Exception)
            {
            }
            return(strValue);
        }