/// <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); }