コード例 #1
0
ファイル: XFServiceAPI.cs プロジェクト: guiyuhao111/baseStudy
        /// <summary>
        /// 获取申请退款XF系统的流水状态
        /// </summary>
        /// <param name="cpySysID"></param>
        /// <param name="reBackID"></param>
        /// <param name="tradeNo"></param>
        /// <param name="reBackMoney"></param>
        /// <param name="outTradNo"></param>
        /// <param name="resMsg"></param>
        /// <returns></returns>
        public static bool ReBackOrderPayMoney(string cpySysID, string reBackID, string tradeNo, string reBackMoney, DateTime oTraderCreateTime, DateTime rebackOrderCreateTme, out string outTradNo, out string resMsg)
        {
            DSMT_TAE_ServiceSoapClient taeCilent = new DSMT_TAE_ServiceSoapClient();
            GetRefundAccBalanceEntity  getRefundAccBalanceEntity = new GetRefundAccBalanceEntity();

            getRefundAccBalanceEntity.CpySysID   = cpySysID;
            getRefundAccBalanceEntity.OrderNo    = reBackID;//退回的订单编号
            getRefundAccBalanceEntity.TradeNo    = tradeNo;
            getRefundAccBalanceEntity.TradeMoney = reBackMoney;
            getRefundAccBalanceEntity.TradeTime  = Convert.ToString(oTraderCreateTime);
            getRefundAccBalanceEntity.OrderTime  = Convert.ToString(rebackOrderCreateTme);
            VerifyHelper verifyHelper = new VerifyHelper();

            verifyHelper.EncryptPmtEntity(getRefundAccBalanceEntity);
            outTradNo = string.Empty;
            resMsg    = string.Empty;
            try
            {
                BackRefundAccBalanceEntity backRefundAccBalanceEntity = taeCilent.RefundAccBalance(getRefundAccBalanceEntity);
                if (verifyHelper.CheckPmtSign(ref backRefundAccBalanceEntity))//校验并解密
                {
                    outTradNo = backRefundAccBalanceEntity.TradeNo;
                    switch (backRefundAccBalanceEntity.TradeStatus)
                    {
                    case "10":
                        return(true);

                    case "20":
                        return(true);

                    case "30":
                        resMsg = "XF系统返回交易信息不存在";
                        break;

                    case "40":
                        resMsg = "XF系统返回退款金额异常";
                        break;

                    case "50":
                        resMsg = "XF系统执行退款失败";
                        break;

                    default:
                        resMsg = "XF系统返回意外的内容";
                        break;
                    }
                }
            }
            catch (Exception e) { ToolHelper.WriteLogInfoToLocalText(e.Message); }
            return(false);
        }
コード例 #2
0
ファイル: binding.aspx.cs プロジェクト: guiyuhao111/baseStudy
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.HttpMethod.ToLower() == "get")//获取用户端的传输方式(全转化为小写)是否是get传值
            {
                string openid = Convert.ToString(HttpContext.Current.Session[WebLoginHelper.SESSION_OPENID]);

                if (!string.IsNullOrEmpty(openid))
                {
                    DSMT_TAE_ServiceSoapClient pmtCilent      = new DSMT_TAE_ServiceSoapClient();
                    GetQueryUserInfoEntity     userInfoEntity = new GetQueryUserInfoEntity();
                    try
                    {
                        userInfoEntity.OpenID = new DESHelper().Decrypt(openid);
                        new VerifyHelper().EncryptPmtEntity(userInfoEntity);
                        BackQueryUserInfoEntity backUserInfo = pmtCilent.QueryUserInfo(userInfoEntity);
                        new VerifyHelper().CheckPmtSign(ref backUserInfo);
                        uOpenID.InnerHtml = openid;//将加密后的openID写入隐藏控件
                        if (backUserInfo != null)
                        {
                            if (!string.IsNullOrEmpty(backUserInfo.UserNo) && !string.IsNullOrEmpty(backUserInfo.UserPhone))//判断职员编号是否为空//并且手机号码不为空
                            {
                                string telphoneNo  = backUserInfo.UserPhone;
                                string telphoneEnc = new DESHelper().Encrypt(telphoneNo);
                                telephoneNo.Value           = WebToolHelper.HiddenTelephoneNo(telphoneNo); //"18758305045";//替换*号符
                                telephoneUserName.InnerHtml = WebToolHelper.HiddenTelephoneUserName(backUserInfo.RealName);
                                telephoneNo.Attributes.Add("disabled", "disabled");
                                telephoneNo.Attributes.Add("mydata", telphoneEnc);
                                BindingInfo bindingInfo = new BindingInfo();
                                bindingInfo.CpySysID   = backUserInfo.CpySysID;
                                bindingInfo.CpyName    = backUserInfo.CpyName;
                                bindingInfo.SimpleName = backUserInfo.SimpleName;
                                bindingInfo.RealName   = backUserInfo.RealName;
                                bindingInfo.UserGender = backUserInfo.UserGender;
                                bindingInfo.UserNo     = backUserInfo.UserNo;
                                string jsonUserInfo = new JavaScriptSerializer().Serialize(bindingInfo);
                                telephoneUserName.Attributes.Add("mydata", new DESHelper().Encrypt(jsonUserInfo));
                            }
                        }
                    }
                    catch (Exception es) { FileHelper.logger.Error(Convert.ToString(es)); Response.Redirect("/web/mall_Index.aspx?", false); }
                }
                else
                {
                    FileHelper.logger.Info("获取COOKIE的openID失败");
                }
            }
        }
コード例 #3
0
ファイル: XFServiceAPI.cs プロジェクト: guiyuhao111/baseStudy
        /// <summary>
        /// 调用查询用户余额的XF接口返回用户可用余额
        /// </summary>
        /// <param name="userInfo">用户信息实体类</param>
        /// <returns></returns>
        public static string GetUserCardBalanceInfo(DB.Model.M_Users userInfo)
        {
            DSMT_TAE_ServiceSoapClient taeCilent     = new DSMT_TAE_ServiceSoapClient();
            GetQueryAccBalanceEntity   balanceEntity = new GetQueryAccBalanceEntity();

            balanceEntity.OpenID = userInfo.OpenID;
            string outMoeny = "0";

            new VerifyHelper().EncryptPmtEntity(balanceEntity);//加密加签
            try
            {
                BackQueryAccBalanceEntity backBalanceEntity = taeCilent.QueryAccBalance(balanceEntity);
                if (new VerifyHelper().CheckPmtSign(ref backBalanceEntity))                                                                                                                                                                     //解密解签
                {                                                                                                                                                                                                                               //AccMoeny:个人余额 ; AccSubsidy:补贴余额 ; AccStatus:账户状态10-未启用20-补贴余额消费30-个人余额消费40-补贴和个人余额消费
                    if ((!string.IsNullOrEmpty(backBalanceEntity.CpySysID) && backBalanceEntity.CpySysID != userInfo.CpySysID) || (!string.IsNullOrEmpty(backBalanceEntity.SimpleName) && backBalanceEntity.SimpleName != userInfo.SimpleName)) //如果返回的用户公司信息与当前用户公司信息不一致,更新用户信息
                    {
                        userInfo.CpySysID   = backBalanceEntity.CpySysID;
                        userInfo.CpyName    = backBalanceEntity.CpyName;
                        userInfo.SimpleName = backBalanceEntity.SimpleName;
                        new DB.BLL.MY_Bll(DBEnum.Master).UpdateModel <DB.Model.M_Users>(" UserID=@_UserID ", new { _UserID = userInfo.UserID, CpySysID = userInfo.CpySysID, CpyName = userInfo.CpyName, SimpleName = userInfo.SimpleName });
                        HttpContext.Current.Session[WebLoginHelper.SESSION_ADMIN] = userInfo;//更新session
                    }
                    switch (backBalanceEntity.AccStatus)
                    {
                    case "20":
                        outMoeny = backBalanceEntity.AccSubsidy;
                        break;

                    case "30":
                        outMoeny = backBalanceEntity.AccMoney;
                        break;

                    case "40":
                        outMoeny = (Convert.ToDouble(backBalanceEntity.AccSubsidy) + Convert.ToDouble(backBalanceEntity.AccMoney)).ToString();
                        break;

                    default:
                        break;
                    }
                }
                return(outMoeny);
            }
            catch
            {
                return(outMoeny);
            }
        }
コード例 #4
0
ファイル: XFServiceAPI.cs プロジェクト: guiyuhao111/baseStudy
        /// <summary>
        /// 调用XF接口获取开通商城消费的所有公司信息
        /// </summary>
        /// <returns></returns>
        public static string GetCpyInfo()
        {
            string resWrite = "UNLOGIN";
            DSMT_TAE_ServiceSoapClient taeCilent          = new DSMT_TAE_ServiceSoapClient();
            GetQueryCpyInfoEntity      queryCpyInfoEntity = new GetQueryCpyInfoEntity();
            VerifyHelper verifyHelper = new VerifyHelper();

            queryCpyInfoEntity.GetNo = Guid.NewGuid().ToString();
            verifyHelper.EncryptPmtEntity(queryCpyInfoEntity);
            try
            {
                BackQueryCpyInfoEntity backQueryCpyInfoEntity = taeCilent.QueryCpyInfo(queryCpyInfoEntity);
                if (verifyHelper.CheckPmtSign(ref backQueryCpyInfoEntity))
                {
                    resWrite = backQueryCpyInfoEntity.CpyInfo;
                }
            }catch {}
            return(resWrite);
        }
コード例 #5
0
ファイル: XFServiceAPI.cs プロジェクト: guiyuhao111/baseStudy
 /// <summary>
 /// 管理员进行手动同步流水状态
 /// </summary>
 /// <param name="tradeSysID"></param>
 /// <param name="resMsg"></param>
 /// <returns></returns>
 public static bool GetOrderInfoPaymentStatusSync(string tradeSysID, out string resMsg)
 {
     resMsg = string.Empty;
     DB.Model.M_OrderTrade orderTradeInfo = new DB.BLL.MY_Bll(DBEnum.Slave).GetModel <DB.Model.M_OrderTrade>(" TradeSysID=@_TradeSysID ", new { _TradeSysID = tradeSysID });
     if (orderTradeInfo != null)
     {
         DSMT_TAE_ServiceSoapClient taeCilent = new DSMT_TAE_ServiceSoapClient();
         GetQueryTradeStatusEntity  queryTradeStatusEntity = null;
         VerifyHelper verifyHelper = new VerifyHelper();
         BackQueryTradeStatusEntity backQueryTradeStatusEntity = null;
         DateTime nowTime   = DateTime.Now;
         string   outOpenID = string.Empty;
         queryTradeStatusEntity     = new GetQueryTradeStatusEntity();                                        //初始化
         backQueryTradeStatusEntity = null;
         if (!string.IsNullOrEmpty(orderTradeInfo.TradeNo) && !string.IsNullOrEmpty(orderTradeInfo.CpySysID)) //判断流水号公司ID都存在的情况下调用XF接口,并且流水号的创建时间超时10分钟
         {
             queryTradeStatusEntity.CpySysID  = orderTradeInfo.CpySysID;
             queryTradeStatusEntity.TradeNo   = orderTradeInfo.TradeNo;
             queryTradeStatusEntity.TradeTime = Convert.ToString(orderTradeInfo.PayTime); //流水时间是XF系统返回给我的时间
             verifyHelper.EncryptPmtEntity(queryTradeStatusEntity);                       //加密加签
             try
             {
                 backQueryTradeStatusEntity = taeCilent.QueryTradeStatus(queryTradeStatusEntity); //调用XF接口
             }
             catch (Exception e)                                                                  //通讯异常
             {
                 resMsg = "与XF系统扣款状态同步查询出错,错误信息:" + e.Message;
             }
             if (verifyHelper.CheckPmtSign(ref backQueryTradeStatusEntity))                                                //尝试解签,解签失败的话不执行任何代码
             {
                 if (backQueryTradeStatusEntity.TradeType == "0")                                                          //交易类型是0
                 {
                     if (backQueryTradeStatusEntity.TradeStatus == "10" || backQueryTradeStatusEntity.TradeStatus == "20") //交易状态10-已完成20-已撤销(余额不足付款失败?)30-待同步40-交易信息不存在
                     {
                         if (new DB.BLL.MY_Bll(DBEnum.Master).UpdateOrderStatusByXFPaymentToComfirm(ToolHelper.ConventToDecimal(backQueryTradeStatusEntity.TradeMoney, 999), orderTradeInfo.TradeSysID, backQueryTradeStatusEntity.TradeStatus, out outOpenID))
                         {
                             //WeChatAPI.SendMsg("付款审核成功", "您有一笔订单流水付款审核已通过,正等待仓库发货", outOpenID);
                             return(true);
                         }
                     }
                     else if (backQueryTradeStatusEntity.TradeStatus == "40")
                     {
                         resMsg = "与XF系统扣款状态同步查询出错,错误信息:XF系统该笔流水号信息不存在";
                     }
                     else if (backQueryTradeStatusEntity.TradeStatus == "30")
                     {
                         resMsg = "XF系统尚未同步,扣款尚未完成";
                     }
                 }
                 else
                 {
                     resMsg = "XF系统返回的数据有误,返回的流水类型是退款流水";
                 }
             }
             else
             {
                 resMsg = "XF系统返回的解签数据出错";
             }
         }
         else
         {
             resMsg = "该流水号数据存在问题";
         }
     }
     else
     {
         resMsg = "该流水号数据存在问题";
     }
     return(false);
 }
コード例 #6
0
ファイル: XFServiceAPI.cs プロジェクト: guiyuhao111/baseStudy
        /// <summary>
        /// 将订单的付款金额推送给XF系统进行资金结算
        /// </summary>
        /// <param name="pushType">推送类型</param>
        /// <param name="pushOrderSn">推送订单编号</param>
        /// <param name="pushOrderAmount">推送订单总金额</param>
        /// <param name="pushFeeAmount">推送订单运费金额</param>
        /// <param name="resPayInfo">返回的支付信息</param>
        /// <returns></returns>
        public static bool SeacherThisOrderTrade(string orderID, out string resPayInfo)
        {
            resPayInfo = string.Empty;
            DSMT_TAE_ServiceSoapClient taeCilent = new DSMT_TAE_ServiceSoapClient();
            GetQueryOrderStatusEntity  getQueryOrderStatusEntity  = new GetQueryOrderStatusEntity();
            BackQueryOrderStatusEntity backQueryOrderStatusEntity = new BackQueryOrderStatusEntity();
            VerifyHelper verifyHelper = new VerifyHelper();

            DB.Model.M_OrderInfo orderInfo   = new DB.BLL.MB_Bll(DBEnum.Slave).GetModel <DB.Model.M_OrderInfo>(" OrderID=@_OrderID ", new { _OrderID = orderID });
            DB.Model.M_Payment   payMentInfo = new DB.BLL.MB_Bll(DBEnum.Slave).GetModel <DB.Model.M_Payment>(" PayID=@_PayID ", new { _PayID = 20 });
            if (orderInfo != null && payMentInfo != null)
            {
                getQueryOrderStatusEntity.OpenID       = orderInfo.OpenID;
                getQueryOrderStatusEntity.OrderNo      = orderInfo.OrderSn;
                getQueryOrderStatusEntity.UnifyOrderNo = orderInfo.OrderUnifySn;
                getQueryOrderStatusEntity.OrderTime    = Convert.ToString(orderInfo.AddTime);
                string resMsg  = string.Empty;
                string orderSn = string.Empty;
                verifyHelper.EncryptPmtEntity(getQueryOrderStatusEntity);
                try
                {
                    backQueryOrderStatusEntity = taeCilent.QueryOrderStatus(getQueryOrderStatusEntity);//调xf接口
                    if (verifyHelper.CheckPmtSign(ref backQueryOrderStatusEntity))
                    {
                        /// 交易状态10-成功20-失败30-待同步40-交易信息不存在
                        if (backQueryOrderStatusEntity != null && !string.IsNullOrEmpty(backQueryOrderStatusEntity.TradeStatus) && !string.IsNullOrEmpty(backQueryOrderStatusEntity.TradeNo))//XF系统返回的数据不为空,并且状态信息不为空
                        {
                            if (backQueryOrderStatusEntity.TradeStatus == "10" || backQueryOrderStatusEntity.TradeStatus == "20" || backQueryOrderStatusEntity.TradeStatus == "30")
                            {
                                orderSn = (backQueryOrderStatusEntity.IsUnify == "0")? orderInfo.OrderSn:orderSn;
                                if (new DB.BLL.MB_Bll(DBEnum.Master).UpdateOrderInfoFromXFPayment(orderInfo.OrderUnifySn, orderSn, ToolHelper.ConventToDecimal(backQueryOrderStatusEntity.TradeMoney, 9999), backQueryOrderStatusEntity.TradeNo, ToolHelper.ConventToDateTime(backQueryOrderStatusEntity.TradeTime, DateTime.Now), payMentInfo, backQueryOrderStatusEntity.CpySysID, backQueryOrderStatusEntity.CpyName, out resMsg))
                                {
                                    //WeChatAPI.SendMsg("异常订单处理成功", "您有一笔异常订单已被成功处理,请关注最新的订单状态",orderInfo.OpenID);
                                    return(true);
                                }
                                else
                                {
                                    resPayInfo = resMsg;
                                }
                            }
                            else
                            {
                                resPayInfo = "交易信息不存在";
                            }
                        }
                        else
                        {
                            resPayInfo = "XF系统返回数据出错,请稍后再试";
                        }
                    }
                    else//验签失败
                    {
                        resPayInfo = "从XF系统返回的数据通讯错误,签名验证失败";
                    }
                }
                catch (Exception e)
                {
                    resPayInfo = "与XF系统的通讯出错,返回错误信息:" + e.Message;
                }
            }
            else
            {
                resPayInfo = "获取相应的数据出错";
            }
            return(false);
        }
コード例 #7
0
ファイル: XFServiceAPI.cs プロジェクト: guiyuhao111/baseStudy
        /// <summary>
        /// 将订单的付款金额推送给XF系统进行资金结算
        /// </summary>
        /// <param name="pushType">推送类型</param>
        /// <param name="pushOrderSn">推送订单编号</param>
        /// <param name="pushOrderAmount">推送订单总金额</param>
        /// <param name="pushFeeAmount">推送订单运费金额</param>
        /// <param name="resPayInfo">返回的支付信息</param>
        /// <returns></returns>
        public static bool SetUserOrderToPayment(string pushType, string pushOrderSn, decimal pushOrderAmount, DateTime orderCreateTime, out string resPayInfo)
        {
            resPayInfo = string.Empty;
            DSMT_TAE_ServiceSoapClient taeCilent              = new DSMT_TAE_ServiceSoapClient();
            GetPayAccBalanceEntity     payAccBanlanceEntity   = new GetPayAccBalanceEntity();
            BackPayAccBalanceEntity    backPayAccBanlanEntity = new BackPayAccBalanceEntity();
            VerifyHelper verifyHelper = new VerifyHelper();

            payAccBanlanceEntity.OpenID     = WebLoginHelper.GetUserOpenID();
            payAccBanlanceEntity.UserPhone  = WebLoginHelper.GetUserPhone();
            payAccBanlanceEntity.OrderMoney = pushOrderAmount.ToString();
            payAccBanlanceEntity.OrderTime  = Convert.ToString(orderCreateTime);
            string logInfo = string.Empty;
            string temp    = string.Empty;

            if (pushType == "orderSn")
            {
                string orderUnifySn = new SQLEntityHelper().GetOrderUnifySnByOrderSn(pushOrderSn);
                if (!string.IsNullOrEmpty(orderUnifySn))
                {
                    payAccBanlanceEntity.UnifyOrderNo = orderUnifySn;
                    payAccBanlanceEntity.OrderNo      = pushOrderSn;
                }
                else
                {
                    resPayInfo = "系统忙,请稍后再试";
                    return(false);
                }
            }
            else if (pushType == "unifySn")
            {
                payAccBanlanceEntity.UnifyOrderNo = pushOrderSn;
            }
            else
            {
                resPayInfo = "系统忙,请稍后再试";
                return(false);
            }
            verifyHelper.EncryptPmtEntity(payAccBanlanceEntity);
            try
            {
                backPayAccBanlanEntity = taeCilent.PayAccBalance(payAccBanlanceEntity);//调xf接口
                if (verifyHelper.CheckPmtSign(ref backPayAccBanlanEntity))
                {
                    /// 交易状态10-支付成功20-已支付完成30-账户信息不存在40-账户不可用50-手机号不一致60-账户余额不足70-支付失败
                    if (backPayAccBanlanEntity != null && !string.IsNullOrEmpty(backPayAccBanlanEntity.TradeStatus))//XF系统返回的数据不为空,并且状态信息不为空
                    {
                        switch (backPayAccBanlanEntity.TradeStatus)
                        {
                        case "10":
                            if (UpdateOrderStatusByXFResultToPayment(backPayAccBanlanEntity, out temp)) //更新订单状态信息为付款中并生成流水号
                            {
                                return(true);                                                           //执行数据库操作成功,直接返回true
                            }
                            else
                            {
                                resPayInfo = "支付错误,请联系客服";                                                //返回给外面resWrite的
                                logInfo    = temp;
                                new TryCatchErrHelper().Handler1001Error(pushType, pushOrderSn, logInfo); //执行错误代码1001的方法
                                break;
                            }

                        case "20":
                            resPayInfo = "您已完成支付申请,请联系客服确认支付结果";
                            logInfo    = "支付错误,系统检测到该笔订单已被XF系统支付,但当前订单状态仍可支付";
                            new TryCatchErrHelper().Handler1001Error(pushType, pushOrderSn, logInfo);    //执行错误代码1001的方法
                            break;

                        case "30":
                            resPayInfo = "非法的操作,账户信息不存在";
                            break;

                        case "40":
                            resPayInfo = "非法的操作,此账户已被冻结";
                            break;

                        case "50":
                            resPayInfo = "非法的操作,系统检测到当前手机号与消费系统预留的手机号不一致";
                            break;

                        case "60":
                            resPayInfo = "支付失败,账户余额不足";
                            break;

                        case "70":
                            resPayInfo = "支付失败,贵公司规定该时段内不允许商城消费";
                            break;

                        case "80":
                            resPayInfo = "支付失败,请重新支付";
                            break;

                        default:
                            resPayInfo = "支付失败";
                            break;
                        }
                    }
                    else
                    {
                        resPayInfo = "结算中心资金结算错误,请联系客服";
                        logInfo    = "从XF系统返回的数据为空,或者返回的流水号为空,订单编号:" + pushOrderSn + ",推送方式:" + pushType;
                        new TryCatchErrHelper().Handler1001Error(pushType, pushOrderSn, logInfo);//执行错误代码1001的方法
                    }
                }
                else //验签失败
                {
                    resPayInfo = "与结算中心通讯错误,请联系客服";
                    logInfo    = "从XF系统返回的数据进行签名验证失败";
                    new TryCatchErrHelper().Handler1001Error(pushType, pushOrderSn, logInfo);//执行错误代码1001的方法
                }
            }
            catch (Exception e)
            {
                ToolHelper.WriteLogInfoToLocalText("推送类型:" + pushType + ",订单编号:" + pushOrderSn + ",与XF系统资金结算出错,错误信息:" + e.Message + ",自定义错误信息" + logInfo);
            }
            return(false);
        }
コード例 #8
0
        /// <summary>
        /// 调用XF系统接口进行交易退款状态同步查询
        /// </summary>
        public static void GetReBackPayAccStatusSync()
        {
            List <DSMTMALL.DB.Model.M_ReBackTrade> orderTradeList = new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Slave).GetModelList <DSMTMALL.DB.Model.M_ReBackTrade>(" ComfirmStatus=10 ORDER BY CreateTime ASC LIMIT 50 ", null);

            if (orderTradeList != null && orderTradeList.Count > 0)
            {
                DSMT_TAE_ServiceSoapClient taeCilent = new DSMT_TAE_ServiceSoapClient();
                GetQueryTradeStatusEntity  queryTradeStatusEntity = null;
                VerifyHelper verifyHelper = new VerifyHelper();
                BackQueryTradeStatusEntity backQueryTradeStatusEntity = null;
                DateTime nowTime   = DateTime.Now;
                string   outOpenID = string.Empty;
                foreach (var item in orderTradeList)
                {
                    queryTradeStatusEntity     = new GetQueryTradeStatusEntity();                                                                //初始化
                    backQueryTradeStatusEntity = null;
                    if (!string.IsNullOrEmpty(item.TradeNo) && !string.IsNullOrEmpty(item.CpySysID) && item.CreateTime.AddMinutes(10) < nowTime) //判断流水号公司ID都存在的情况下调用XF接口,并且流水号的创建时间超时10分钟
                    {
                        if (item.CreateTime.AddMinutes(360) > nowTime)                                                                           //如果超过6个小时,XF系统还未同步完成,记录异常
                        {
                            queryTradeStatusEntity.CpySysID = item.CpySysID;
                            queryTradeStatusEntity.TradeNo  = item.ReBackTradeNo;
                            verifyHelper.EncryptPmtEntity(queryTradeStatusEntity);//加密加签
                            try
                            {
                                backQueryTradeStatusEntity = taeCilent.QueryTradeStatus(queryTradeStatusEntity); //调用XF接口
                            }
                            catch (Exception e)                                                                  //通讯异常
                            {
                                ToolHelper.WriteTxt(logPathErr, DateTime.Now + "退款流水号:" + item.ReBackTradeNo + "与XF系统退款状态同步查询出错,错误信息:" + e.Message, false);
                                continue;
                            }
                            if (verifyHelper.CheckPmtSign(ref backQueryTradeStatusEntity))//尝试解签,解签失败的话不执行任何代码
                            {
                                if (backQueryTradeStatusEntity.TradeType == "1")
                                {
                                    if (backQueryTradeStatusEntity.TradeStatus == "10" || backQueryTradeStatusEntity.TradeStatus == "20") //交易状态10-已完成20-已撤销(即失败)30-待同步40-交易信息不存在
                                    {
                                        if (new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Master).UpdateReBackPayAccByXFPaymentToComfirm(ToolHelper.ConventToDecimal(backQueryTradeStatusEntity.TradeMoney, 999), item.ReBackTradeSysID, backQueryTradeStatusEntity.TradeStatus, out outOpenID))
                                        {
                                            WeChatAPI.SendMsg("退款资金到账通知", "您有一笔退款金额已通过原支付方式退还至您的账户,请注意查收", outOpenID);
                                        }
                                    }
                                    else if (backQueryTradeStatusEntity.TradeStatus == "40")
                                    {
                                        string resMsg = DateTime.Now + "退款流水号:" + item.ReBackTradeNo + "与XF系统退款状态同步查询出错,错误信息:XF系统该笔流水号信息不存在";
                                        new DSMTMALL.DB.BLL.MB_Bll(DBEnum.Master).RecordErrInfoNote("同步程序查询XF系统退款状态发现异常", resMsg);
                                        new TryCatchErrHelper().HandlerReBackTradeError(item.ReBackTradeSysID);
                                        ToolHelper.WriteTxt(logPathErr, resMsg, false);
                                    }//30就不做任何处理
                                }
                            }
                        }
                        else
                        {
                            new DSMTMALL.DB.BLL.MB_Bll(DBEnum.Master).RecordErrInfoNote("同步程序查询XF系统退款状态发现异常", "退款流水号:" + item.TradeNo + "与XF系统退款状态同步查询已过6个小时,XF系统仍未同步完成");
                            new TryCatchErrHelper().HandlerReBackTradeError(item.ReBackTradeSysID);
                        }
                    }
                }
            }
        }