/// <summary> /// /// </summary> /// <param name="entity"></param> /// <returns></returns> public bool Add(OrderPaymentEntity entity) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into OrderPayment("); strSql.Append("PayCode,TradeCode,UserId,OrderType,OrderCode,PayAmount,PaidAmount,PayPlatform,PayType,PayStatus,PayTerminal,PayCompleteTime,PayBackRemark,Remark,CreateTime,CreateBy)"); strSql.Append(" values ("); strSql.Append("@PayCode,@TradeCode,@UserId,@OrderType,@OrderCode,@PayAmount,@PaidAmount,@PayPlatform,@PayType,@PayStatus,@PayTerminal,@PayCompleteTime,@PayBackRemark,@Remark,@CreateTime,@CreateBy)"); var parameters = DbSFO2OMain.CreateParameterCollection(); parameters.Append("@PayCode", entity.PayCode); parameters.Append("@TradeCode", entity.TradeCode); parameters.Append("@UserId", entity.UserId); parameters.Append("@OrderType", entity.OrderType); parameters.Append("@OrderCode", entity.OrderCode); parameters.Append("@PayAmount", entity.PayAmount); parameters.Append("@PaidAmount", entity.PaidAmount); parameters.Append("@PayPlatform", entity.PayPlatform); parameters.Append("@PayType", entity.PayType); parameters.Append("@PayStatus", entity.PayStatus); parameters.Append("@PayTerminal", entity.PayTerminal); parameters.Append("@PayCompleteTime", entity.PayCompleteTime); parameters.Append("@PayBackRemark", entity.PayBackRemark); parameters.Append("@Remark", entity.Remark); parameters.Append("@CreateTime", entity.CreateTime); parameters.Append("@CreateBy", entity.CreateBy); return(DbSFO2OMain.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameters) > 0); }
/// <summary> /// 订单回写 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool OrderReturn(JuHeFuResponseModel model) { bool isOk = false; CustomerEntity userInfo = accountBll.GetUserById(ConvertHelper.ZParseInt32(model.userid, 0)); #region 操作充值、回写订单 //验证订单号、流水号 OrderPaymentEntity entity = buyOrderManager.GetOrderPaymentByTradeCode(model.tradeid); if (entity == null) { LogHelper.WriteInfo(typeof(PayBll), string.Format("PayCallBackRetunResult支付回调操作失败信息:订单不存在-----{0}", JsonHelper.ToJson(model))); //该订单不存在,记录日志 return(false); } if (entity.UserId.ToString().Trim() != model.userid.Trim() || entity.PayCode != model.channeltradeid) { LogHelper.WriteInfo(typeof(PayBll), string.Format("PayCallBackRetunResult支付回调操作失败信息:UserId、Tradeid跟订单信息不匹配----{0}", JsonHelper.ToJson(model))); //信息有误,记录日志 return(false); } if (model.success == "1") { //调用充值 if (entity.PayStatus == 1) { if (userInfo.SourceType == 10) {
/// <summary> /// 支付回写 /// </summary> /// <param name="OrderCode"></param> /// <param name="TradeNo"></param> /// <param name="PayBackRemark"></param> /// <param name="DeliveryRegion"></param> /// <param name="language"></param> /// <returns></returns> public bool PayReturn(string OrderCode, string TradeNo, string PayBackRemark, int DeliveryRegion, int language, int PayPlatform) { LogHelper.Error("-----支付回写1 订单号:" + OrderCode + " ,支付宝回写参数:" + PayBackRemark + "--------"); bool flag = false; // 获得支付信息 OrderPaymentEntity entity = GetOrderPaymentInfo(OrderCode, PayPlatform); ///// 获取订单所属的团信息 //TeamInfoEntity teamInfoEntity = teamBll.GetTeamInfoEntity(OrderCode); /// 普通订单 //if (teamInfoEntity == null) //{ // 组件订单支付信息对象 OrderPaymentEntity orderPaymentEntity = BuildOrderPaymentEntity(TradeNo, entity, PayBackRemark); /*LogHelper.Error("--------BuildOrderPaymentEntity----1-----赋值前参数PayCode:" + entity.PayCode + "--------BuildOrderPaymentEntity----2-----赋值后参数PayCode:" + orderPaymentEntity.PayCode);*/ // 普通订单支付处理 flag = NomalOrderPay(entity, OrderCode, TradeNo, PayBackRemark, orderPaymentEntity, 1); //} //else //{ // // 团订单支付处理 // flag = TeamOrderPay(entity, OrderCode, teamInfoEntity, TradeNo // , PayBackRemark, DeliveryRegion, language); //} return(flag); }
/// <summary> /// 团订单支付处理 /// </summary> /// <param name="entity"></param> /// <param name="OrderCode"></param> /// <param name="teamInfoEntity"></param> /// <param name="TradeNo"></param> /// <param name="PayBackRemark"></param> /// <param name="DeliveryRegion"></param> /// <param name="language"></param> /// <returns></returns> public bool TeamOrderPay(OrderPaymentEntity entity, string OrderCode, TeamInfoEntity teamInfoEntity , string TradeNo, string PayBackRemark, int DeliveryRegion, int language) { if (entity.PayStatus != 1) { //LogHelper.Error("订单异常 发给支付宝的支付号为:" + OrderCode); return(false); } else { if (teamInfoEntity.TeamStatus == 2 || teamInfoEntity.TeamStatus == 3) { //LogHelper.Error("团订单异常 发给支付宝的支付号为:" + OrderCode); return(false); } // 组件订单支付信息对象 OrderPaymentEntity orderPaymentEntity = BuildOrderPaymentEntity(TradeNo, entity, PayBackRemark); // 更新库存、支付和订单等信息 UpdatePayInfo(TradeNo, entity, PayBackRemark, orderPaymentEntity, 2); //LogHelper.Info("--------TeamPayAfter----2-----" + teamInfoEntity); /// 获取团详情信息 var teamDetailList = teamBll.GetTeamDetailListForStatus(teamInfoEntity.TeamCode); //LogHelper.Info("--------TeamPayAfter----3-----" + teamDetailList.Count()); if (teamDetailList == null) { return(false); } // 获得参团成功的团员数量 int teamSucStatusCount = GetTeamSucStatusCount(teamDetailList); /// 团订单中最后一人支付成功 if (teamSucStatusCount == (teamDetailList.First().TeamNumbers - 1)) { //LogHelper.Info("--------TeamPayAfter----4-----最后一人支付成功" + teamSucStatusCount); // 团订单最后一人支付 TeamOrderLastPay(teamInfoEntity, entity, orderPaymentEntity , DeliveryRegion, language, teamDetailList); } /// 不是最后一人支付成功 else { //LogHelper.Info("--------TeamPayAfter----5-----" + teamSucStatusCount); // 团订单不是最后一人支付 TeamOrderNotLastPay(teamInfoEntity, entity, orderPaymentEntity); } return(true); } }
/// <summary> /// 获得支付信息 /// </summary> /// <param name="OrderCode"></param> /// <returns></returns> public OrderPaymentEntity GetOrderPaymentInfo(string OrderCode, int PayPlatform) { // 通过orderCode 找到OrderPayment 的最近一条记录 OrderPaymentEntity orderPayment = new OrderPaymentEntity(); orderPayment = buyOrderManager.selectOrderCode(OrderCode, PayPlatform); var entity = buyOrderManager.GetOrderPaymentByCode(orderPayment.PayCode); return(entity); }
/// <summary> /// 团订单不是最后一人支付 /// </summary> /// <param name="teamInfoEntity"></param> /// <param name="entity"></param> /// <param name="orderPaymentEntity"></param> /// <returns></returns> public void TeamOrderNotLastPay(TeamInfoEntity teamInfoEntity, OrderPaymentEntity entity, OrderPaymentEntity orderPaymentEntity) { /// 订单状态为6 int OrderStatus = 6; /// 更新TeamInfo表的TeamStatus字段为1,参团中 teamInfoEntity.TeamStatus = 1; //LogHelper.Info("--------TeamPayAfter----15-----不是最后支付" + teamInfoEntity.TeamStatus); /// 团订单更新库存和订单信息表 buyOrderManager.TeamOrderPayOK(entity.OrderCode, orderPaymentEntity.PaidAmount, "", OrderStatus, teamInfoEntity); }
/// <summary> /// 更新库存、支付和订单等信息 /// </summary> /// <param name="TradeNo"></param> /// <param name="entity"></param> /// <param name="PayBackRemark"></param> public void UpdatePayInfo(string TradeNo, OrderPaymentEntity entity, string PayBackRemark, OrderPaymentEntity orderPaymentEntity, int OrderType) { //LogHelper.Error("--------OrderPayAfter----1.4-----更新orderPayment开始:"); //更新orderPayment buyOrderManager.UpdatePaysuccess(orderPaymentEntity); //LogHelper.Error("--------OrderPayAfter----1.4-----更新orderPayment结束:"); //LogHelper.Error("--------OrderPayAfter----1.5-----OrderType:" + OrderType); if (OrderType == 1) { //LogHelper.Error("--------OrderPayAfter----1.6-----OrderPayOk处理开始:"); //LogHelper.Error("--------OrderPayAfter----1.6-----" + entity.OrderCode); buyOrderManager.OrderPayOk(entity.OrderCode, orderPaymentEntity.PaidAmount, ""); //LogHelper.Error("--------OrderPayAfter----1.6-----OrderPayOk处理结束:"); } }
/// <summary> /// 组件订单支付信息对象 /// </summary> /// <param name="TradeNo"></param> /// <param name="entity"></param> /// <param name="PayBackRemark"></param> /// <returns></returns> public OrderPaymentEntity BuildOrderPaymentEntity(string TradeNo, OrderPaymentEntity entity, string PayBackRemark) { //组建需要更新的字段 OrderPaymentEntity orderPaymentEntity = new OrderPaymentEntity(); //orderPaymentEntity.OrderCode = out_trade_no; orderPaymentEntity.TradeCode = TradeNo; orderPaymentEntity.PaidAmount = StringUtils.ToDecimal(entity.PayAmount); orderPaymentEntity.PayStatus = 2; orderPaymentEntity.PayCompleteTime = DateTime.Now; orderPaymentEntity.PayBackRemark = PayBackRemark; orderPaymentEntity.PayCode = entity.PayCode; return(orderPaymentEntity); }
/// <summary> /// 支付失败 /// </summary> public bool UpdatePayFailure(OrderPaymentEntity entity) { StringBuilder strSql = new StringBuilder(); strSql.Append("UPDATE OrderPayment "); strSql.Append("SET TradeCode=@TradeCode,PayStatus=@PayStatus, "); strSql.Append("PayCompleteTime=@PayCompleteTime,PayBackRemark=@PayBackRemark "); strSql.Append("WHERE PayCode=@PayCode "); var parameters = DbSFO2OMain.CreateParameterCollection(); parameters.Append("@PayCode", entity.PayCode); parameters.Append("@TradeCode", entity.TradeCode); parameters.Append("@PayStatus", entity.PayStatus); parameters.Append("@PayCompleteTime", entity.PayCompleteTime); parameters.Append("@PayBackRemark", entity.PayBackRemark); return(DbSFO2OMain.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameters) > 0); }
/// <summary> /// 普通订单支付处理 /// </summary> /// <param name="entity"></param> /// <param name="OrderCode"></param> /// <param name="TradeNo"></param> /// <param name="PayBackRemark"></param> /// <returns></returns> public bool NomalOrderPay(OrderPaymentEntity entity, string OrderCode, string TradeNo, string PayBackRemark, OrderPaymentEntity orderPaymentEntity, int OrderType) { if (entity.PayStatus != 1) { //LogHelper.Error("订单异常 发给支付宝的支付号为:" + OrderCode); return(false); } else { // 更新库存、支付和订单等信息 UpdatePayInfo(TradeNo, entity, PayBackRemark, orderPaymentEntity, OrderType); // 添加需要推送的订单信息到push表中 // orderManager.AddPushOrderInfo(OrderCode); // 添加普通订单消息信息 // AddNoemalOrderInformationInfo(OrderCode, entity); return(true); } }
/// <summary> /// 添加普通订单消息信息 /// </summary> /// <param name="OrderCode"></param> /// <param name="entity"></param> public void AddNoemalOrderInformationInfo(string OrderCode, OrderPaymentEntity entity) { //LogHelper.Error("--------获取订单图片After开始----1-----" + OrderCode); ProductInfoModel productInfoModel = orderManager.GetOrderImage(OrderCode); //LogHelper.Error("--------获取订单图片After结束----1-----" + productInfoModel); //LogHelper.Error("--------消息对象设置参数After开始----1-----" + entity.UserId); InformationEntity InformationEntity = new InformationEntity(); InformationEntity.InfoType = 1; InformationEntity.WebInnerType = 3; InformationEntity.SendDest = CommonBll.GetUserRegion(entity.UserId); InformationEntity.SendUserId = entity.UserId; InformationEntity.TradeCode = OrderCode; InformationEntity.Title = InformationUtils.UserPaySuccTitle; InformationEntity.InfoContent = InformationUtils.UserPaySuccContent_Prefix + OrderCode + InformationUtils.UserPaySuccContent_suffix; if (productInfoModel != null) { //LogHelper.Error("--------消息对象设置参数After开始----2-----" + productInfoModel.ImagePath); InformationEntity.ImagePath = productInfoModel.ImagePath; } else { InformationEntity.ImagePath = null; } InformationEntity.Summary = null; InformationEntity.LinkUrl = "my/detail?orderCode=" + OrderCode; InformationEntity.StartTime = null; InformationEntity.EndTime = null; InformationEntity.LongTerm = 0; InformationEntity.CreateTime = DateTime.Now; //LogHelper.Error("--------插入消息表开始----1-----"); InformationBll.AddInformation(InformationEntity); }
/// <summary> /// 团订单最后一人支付 /// </summary> /// <param name="teamInfoEntity"></param> /// <param name="entity"></param> /// <param name="orderPaymentEntity"></param> /// <param name="DeliveryRegion"></param> /// <param name="language"></param> /// <param name="teamDetailList"></param> /// <returns></returns> public void TeamOrderLastPay(TeamInfoEntity teamInfoEntity, OrderPaymentEntity entity, OrderPaymentEntity orderPaymentEntity , int DeliveryRegion, int language, IList <TeamDetailEntity> teamDetailList) { /// 订单状态为6 int OrderStatus = 6; /// 更新TeamInfo表的TeamStatus字段为3,组团成功 teamInfoEntity.TeamStatus = 3; /// 团订单更新库存、订单信息表和团信息表状态 buyOrderManager.TeamOrderPayOK(entity.OrderCode, orderPaymentEntity.PaidAmount, "", OrderStatus, teamInfoEntity); // 根据团Code获得订单信息集合 IList <OrderInfoEntity> OrderInfoList = orderManager.GetOrderInfoByTeamCode(teamInfoEntity.TeamCode); if (OrderInfoList != null && OrderInfoList.Count() != 0) { //LogHelper.Info("--------TeamPayAfter----4.1-----" + OrderInfoList.Count()); // 更新订单相关信息和保存Push信息表 UpdateAndSavePushOrderInfo(OrderInfoList, orderPaymentEntity, teamInfoEntity); int count = OrderInfoList.Where(d => d.OrderStatus != 6).Count(); //LogHelper.Info("--------TeamPayAfter----4.0.1-----状态不是6的集合长度:" + count); if (count != 0) { // 关闭没有支付的订单 CloseNotPayOrderInfo(teamInfoEntity, DeliveryRegion, language); } // 添加团订单消息信息 AddTeamOrderInformationInfo(teamDetailList); // 团长订单的订单来源类型和订单来源值处理 UpdateTeamHeadSource(teamDetailList); } }
/// <summary> /// 更新订单相关信息和保存Push信息表 /// </summary> /// <param name="OrderInfoList"></param> /// <param name="orderPaymentEntity"></param> /// <param name="teamInfoEntity"></param> public void UpdateAndSavePushOrderInfo(IList <OrderInfoEntity> OrderInfoList, OrderPaymentEntity orderPaymentEntity, TeamInfoEntity teamInfoEntity) { foreach (OrderInfoEntity orderInfo in OrderInfoList) { //LogHelper.Info("--------TeamPayAfter----4.1.1-----" + orderInfo.OrderCode); //LogHelper.Info("--------TeamPayAfter----4.1.1-----状态:" + orderInfo.OrderStatus); if (orderInfo.OrderStatus == 6) { // 订单状态设置为1 int OrderStatus = 1; /// 团订单更新订单信息表和团信息表状态 buyOrderManager.TeamOrderPayOKForStatus(orderInfo.OrderCode, orderPaymentEntity.PaidAmount, "", OrderStatus, teamInfoEntity); /// 添加需要推送的订单信息到push表中 orderManager.AddPushOrderInfo(orderInfo.OrderCode); } } }