public void ProcessRequest(HttpContext context) { try { ZentCloud.BLLJIMP.Model.Project model = bll.ConvertRequestToModel <ZentCloud.BLLJIMP.Model.Project>(new ZentCloud.BLLJIMP.Model.Project()); model.UserId = CurrentUserInfo.UserID; model.WebsiteOwner = bll.WebsiteOwner; model.InsertDate = DateTime.Now; model.Status = "待审核"; model.ProjectId = int.Parse(bll.GetGUID(BLLJIMP.TransacType.CommAdd)); model.ProjectType = "DistributionOffLine"; string msg = ""; if (!bll.CheckProjectInfo(model, out msg)) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = msg; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return; } if (bll.Add(model)) { apiResp.status = true; apiResp.msg = "ok"; ZentCloud.BLLJIMP.Model.ProjectLog log = new ZentCloud.BLLJIMP.Model.ProjectLog(); log.InsertDate = DateTime.Now; log.ProjectId = model.ProjectId; log.ProjectName = model.ProjectName; log.Remark = string.Format("提交了项目{0} 操作人:{1}", model.ProjectName, bllUser.GetUserDispalyName(CurrentUserInfo)); log.Status = model.Status = model.Status; log.UserId = CurrentUserInfo.UserID; log.WebsiteOwner = bll.WebsiteOwner; bll.Add(log); #region 给管理员发送消息 var currWebSiteUserInfo = bll.GetCurrWebSiteUserInfo(); if (!string.IsNullOrEmpty(currWebSiteUserInfo.WeiXinKeFuOpenId)) { bllWeixin.SendTemplateMessageNotifyComm(currWebSiteUserInfo, string.Format("提交项目申请"), string.Format("用户:{0}\\n提交了项目{1}", CurrentUserInfo.TrueName, model.ProjectName)); } #endregion } else { apiResp.msg = "提交失败"; } } catch (Exception ex) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = ex.Message; } context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); }
public void ProcessRequest(HttpContext context) { if (!string.IsNullOrEmpty(CurrentUserInfo.DistributionOffLinePreUserId)) { apiResp.msg = "您已经是分销员"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return; } string activityId = bll.GetDistributionOffLineApplyActivityID(); ActivityDataInfo model = bllActivity.GetActivityDataInfo(activityId, CurrentUserInfo.UserID); if (model == null) { apiResp.msg = "您还未申请"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return; } if (model.Status != 4003)//不是微转发审核通过的不给继续操作 { apiResp.msg = "审核未通过"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return; } UserInfo commendUserInfo = bllUser.GetUserInfoByAutoID(int.Parse(model.DistributionOffLineRecommendCode)); if (commendUserInfo == null) { apiResp.msg = "推荐人不存在"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return; } CurrentUserInfo.DistributionOffLinePreUserId = commendUserInfo.UserID; CurrentUserInfo.TrueName = model.Name; if (bllUser.Update(CurrentUserInfo)) { //申请通过向申请人和上级提醒通过申请 bllWeixin.SendTemplateMessageNotifyComm(commendUserInfo, string.Format("恭喜您的会员“{0}”申请财富会员成功", model.Name), "请提醒他关注公众号并帮助他熟悉系统操作吧。", string.Format("http://{0}/App/Distribution/m/index.aspx", context.Request.Url.Host)); apiResp.status = true; apiResp.msg = "ok "; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); } else { apiResp.msg = "操作失败"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); } }
public void ProcessRequest(HttpContext context) { string orderSn = context.Request["order_sn"]; //订单号 string status = context.Request["status"]; //状态 0不同意 1同意 string remark = context.Request["remark"]; //备注 string type = context.Request["type"]; //类型 1 退款 2退押金 string tpMsgTitle = string.Empty, tpMsgContent = string.Empty; //模板消息 if (string.IsNullOrEmpty(type)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "type 参数必传"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(orderSn)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "order_sn 参数必传"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(status)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "status 参数必传"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (status != "1" && status != "0") { resp.code = (int)APIErrCode.OperateFail; resp.msg = "status 参数值不合法"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(remark)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "remark 参数必传"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } var orderInfo = bllMall.GetOrderInfoByOutOrderId(orderSn); if (orderInfo == null) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "order_sn 不存在,请检查"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } //using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"D:\wifilog.txt", true, System.Text.Encoding.GetEncoding("gb2312"))) //{ // sw.WriteLine(string.Format("type:{0}", type)); //} switch (type) { case "1": //退款 orderInfo.Ex18 = status; if (status == "0") //拒绝后用户可申请退款 { if (string.IsNullOrEmpty(orderInfo.ExpressNumber)) //发货前可重新申请退款 { orderInfo.Ex11 = "0"; //退款 orderInfo.IsRefund = 0; } tpMsgTitle = "已经拒绝您的退款申请"; } else { tpMsgTitle = "已经同意您的退款申请"; } orderInfo.Ex19 = HttpUtility.UrlDecode(remark); break; case "2": //退押金 orderInfo.Ex20 = status; orderInfo.Ex21 = HttpUtility.UrlDecode(remark); if (status == "0") { tpMsgTitle = "已经拒绝您的退押金申请"; } else { tpMsgTitle = "已经同意您的退押金申请"; } break; default: resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "不合法的 type 值"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } orderInfo.LastUpdateTime = DateTime.Now; if (bllMall.Update(orderInfo)) { resp.msg = "ok"; resp.status = true; tpMsgContent = "订单号 " + orderInfo.OrderID; if (status == "0") { tpMsgContent += "\\n" + HttpUtility.UrlDecode(remark); } var orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID); if (orderUserInfo != null && !string.IsNullOrWhiteSpace(orderUserInfo.WXOpenId)) { string url = string.Empty; if (bllMall.WebsiteOwner == "jikuwifi") { url = string.Format("http://jikuwifi.comeoncloud.net/customize/jikuwifi/Index.aspx?v=1.0&ngroute=/orderDetail/{0}#/orderDetail/{0}", orderInfo.OrderID); } bllWeixin.SendTemplateMessageNotifyComm(orderUserInfo, tpMsgTitle, tpMsgContent, url); } } else { resp.code = (int)APIErrCode.OperateFail; resp.msg = "操作失败"; } context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); }
public void ProcessRequest(HttpContext context) { if (context.Request.HttpMethod != "POST") { resp.code = (int)APIErrCode.OperateFail; resp.msg = "请用POST提交"; bllUser.ContextResponse(context, resp); return; } string openId = context.Request["openid"]; //openId string title = context.Request["title"]; //标题 string content = context.Request["content"]; //备注 string link = context.Request["link"]; //网页链接 string serialNumber = context.Request["serial_number"]; //流水号 title = HttpUtility.UrlDecode(title); content = HttpUtility.UrlDecode(content); if (string.IsNullOrEmpty(openId)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "openid 参数必传"; bllWeixin.ContextResponse(context, resp); return; } if (string.IsNullOrEmpty(title)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "title 参数必传"; bllWeixin.ContextResponse(context, resp); return; } if (string.IsNullOrEmpty(content)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "content 参数必传"; bllWeixin.ContextResponse(context, resp); return; } UserInfo userInfo = bllUser.GetUserInfoByOpenId(openId); if (userInfo == null && (bllUser.WebsiteOwner == "dongwu" || bllUser.WebsiteOwner == "dongwudev")) { userInfo = bllUser.CreateNewUser(bllUser.WebsiteOwner, openId, ""); } if (userInfo == null) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "openid 不存在"; bllWeixin.ContextResponse(context, resp); return; } var isSuccess = bllWeixin.SendTemplateMessageNotifyComm(userInfo, title, content, link); if (isSuccess) { resp.status = true; resp.msg = "ok"; bllLog.Add(bllLog.WebsiteOwner, EnumApiModule.WeixinMessage, string.Format("发送微信消息\n标题:{0},内容:{1},链接:{2}", title, content, link), openId, userInfo.UserID, serialNumber); } else { resp.code = (int)APIErrCode.OperateFail; resp.msg = "发送失败"; } bllWeixin.ContextResponse(context, resp); }
/// <summary> /// 领取卡券 /// </summary> /// <param name="context"></param> /// <returns></returns> private string ReciveCardCoupon(HttpContext context) { string cardCouponId = context.Request["cardcoupon_id"]; CardCoupons cardCoupon = bllCardCoupon.GetCardCoupon(int.Parse(cardCouponId)); if (cardCoupon == null) { resp.errcode = 1; resp.errmsg = "cardcoupon_id 不存在"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } cardCoupon = bllCardCoupon.ConvertExpireTime(cardCoupon); var myCardCoupon = bllCardCoupon.GetMyCardCouponMainId(int.Parse(cardCouponId), currentUserInfo.UserID); if (myCardCoupon != null) { resp.errcode = 1; resp.errmsg = "已经领取过了"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } if (DateTime.Now > (DateTime)(cardCoupon.ValidTo)) { resp.errcode = 2; resp.errmsg = "卡券已过期"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } if (cardCoupon.MaxCount > 0) { if (bllCardCoupon.GetCardCouponSendCount(cardCoupon.CardId) >= cardCoupon.MaxCount) { resp.errcode = 2; resp.errmsg = "卡券已经领完"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } } if (cardCoupon.GetLimitType != null) { if (cardCoupon.GetLimitType == "1" && !bllUser.IsDistributionMember(currentUserInfo, true)) { resp.errcode = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyDistMember; resp.errmsg = "只有分销员才能领取"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } if (cardCoupon.GetLimitType == "2" && bllUser.IsDistributionMember(currentUserInfo)) { resp.errcode = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyNotDistMember; resp.errmsg = "该券仅新用户(无购买历史)可以领取"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } } if (!string.IsNullOrEmpty(cardCoupon.BindChannelUserId)) { if (string.IsNullOrEmpty(currentUserInfo.DistributionOwner)) { resp.errcode = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyChannel; resp.errmsg = "只有指定渠道才能领取"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } BLLJIMP.BLLDistribution bllDis = new BLLJIMP.BLLDistribution(); string channelUserId = bllDis.GetUserChannel(currentUserInfo); if (cardCoupon.BindChannelUserId != channelUserId) { resp.errcode = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyChannel; resp.errmsg = "只有指定渠道才能领取"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } } MyCardCoupons model = new MyCardCoupons(); model.CardCouponNumber = string.Format("No.{0}{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), bllMall.GetGUID(BLLJIMP.TransacType.CommAdd)); model.CardCouponType = cardCoupon.CardCouponType; model.CardId = cardCoupon.CardId; model.InsertDate = DateTime.Now; model.UserId = currentUserInfo.UserID; model.WebSiteOwner = bllCardCoupon.WebsiteOwner; if (bllCardCoupon.Add(model)) { resp.errmsg = "ok"; string title = "您收到了一张优惠券"; string content = string.Format("{0}", cardCoupon.Name); if (cardCoupon.ValidTo.HasValue) { content += string.Format("\\n{0}", ((DateTime)cardCoupon.ValidTo).ToString("yyyy-MM-dd")); } string url = string.Format("http://{0}/customize/shop/?v=1.0&ngroute=/mycoupons#/mycoupons", context.Request.Url.Host); if (bllUser.WebsiteOwner == "jikuwifi") { url = string.Format("http://{0}/customize/jikuwifi/?v=1.0&ngroute=/mycoupons#/mycoupons", context.Request.Url.Host); } bllWeixin.SendTemplateMessageNotifyComm(currentUserInfo, title, content, url); //#region 同时发放到微信卡包 //if (!string.IsNullOrEmpty(cardCoupon.WeixinCardId) && (!string.IsNullOrEmpty(CurrentUserInfo.WXOpenId))) //{ // bllWeixinCard.SendByMass(cardCoupon.WeixinCardId, CurrentUserInfo.WXOpenId); //} //#endregion } else { resp.errcode = 1; resp.errmsg = "领取优惠券失败"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); }
protected void Page_Load(object sender, EventArgs e) { try { //Tolog("进入支付回调"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Request.InputStream); xmlDoc.Save(string.Format("C:\\WXPay\\Notify{0}.xml", DateTime.Now.ToString("yyyyMMddHHmmssfff")));//写入日志 //全部参数 Dictionary <string, string> parametersAll = new Dictionary <string, string>(); foreach (XmlElement item in xmlDoc.DocumentElement.ChildNodes) { string key = item.Name; string value = item.InnerText; if ((!string.IsNullOrEmpty(key)) && (!string.IsNullOrEmpty(value))) { parametersAll.Add(key, value); } } parametersAll = (from entry in parametersAll orderby entry.Key ascending select entry).ToDictionary(pair => pair.Key, pair => pair.Value);//全部参数排序 orderInfo = bllMall.GetOrderInfo(parametersAll["out_trade_no"]); PayConfig payConfig = bllPay.GetPayConfig(); if (!bllPay.VerifySignatureWx(parametersAll, payConfig.WXPartnerKey))//验证签名 { Tolog("验证签名出错"); Response.Write(failXml); return; } if (orderInfo == null) { Tolog("订单未找到"); Response.Write(failXml); return; } if (orderInfo.PaymentStatus.Equals(1)) { //Tolog("已支付"); Response.Write(successXml); return; } orderInfo.PaymentType = 2; //更新订单状态 WXMallProductInfo tProductInfo = new WXMallProductInfo(); if (parametersAll["return_code"].Equals("SUCCESS") && parametersAll["result_code"].Equals("SUCCESS")) //交易成功 { UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID, bllUser.WebsiteOwner); //下单用户信息 string hasOrderIDs = ""; int maxCount = 1; //Tolog("准备检查更新订单状态"); if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType)) { //Tolog("预订类型"); #region 预约订单修改状态 orderInfo.PaymentStatus = 1; orderInfo.PayTime = DateTime.Now; orderInfo.Status = "预约成功"; #region 检查是否有预约成功的订单 List <WXMallOrderDetailsInfo> tDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID, null, orderInfo.ArticleCategoryType, null, null); List <WXMallOrderDetailsInfo> oDetailList = bllMall.GetOrderDetailsList(null, tDetailList[0].PID, orderInfo.ArticleCategoryType, tDetailList.Min(p => p.StartDate), tDetailList.Max(p => p.EndDate)); tProductInfo = bllMall.GetByKey <WXMallProductInfo>("PID", tDetailList[0].PID); maxCount = tProductInfo.Stock; List <string> hasOrderIDList = new List <string>(); foreach (var item in tDetailList) { List <WXMallOrderDetailsInfo> hasOrderDetailList = oDetailList.Where(p => !((item.StartDate >= p.EndDate && item.EndDate > p.EndDate) || (item.StartDate < p.StartDate && item.EndDate <= p.StartDate))).ToList(); if (hasOrderDetailList.Count >= maxCount) { hasOrderIDList.AddRange(hasOrderDetailList.Select(p => p.OrderID).Distinct()); } } hasOrderIDList = hasOrderIDList.Where(p => !p.Contains(orderInfo.OrderID)).ToList(); if (hasOrderIDList.Count > 0) { hasOrderIDList = hasOrderIDList.Distinct().ToList(); hasOrderIDs = MyStringHelper.ListToStr(hasOrderIDList, "'", ","); } #endregion 检查是否有预约成功的订单 #endregion 预约订单修改状态 } else { //Tolog("普通类型"); #region 原订单修改状态 orderInfo.PaymentStatus = 1; orderInfo.Status = "待发货"; orderInfo.PayTime = DateTime.Now; if (orderInfo.DeliveryType == 1) { orderInfo.Status = "待自提"; } Tolog("更改状态start"); //if (bllMall.GetWebsiteInfoModelFromDataBase().IsDistributionMall.Equals(1)) //{ orderInfo.GroupBuyStatus = "0"; orderInfo.DistributionStatus = 1; //if (orderInfo.IsMain==1) //{ // bllMall.Update(orderInfo,string.Format(" DistributionStatus=1"),string.Format("ParentOrderId='{0}'",orderInfo.OrderID)); //} #region 活动订单 if (orderInfo.OrderType == 4) { ActivityDataInfo data = bllMall.Get <ActivityDataInfo>(string.Format(" OrderId='{0}'", orderInfo.OrderID)); if (data != null) { bllMall.Update(data, string.Format(" PaymentStatus=1"), string.Format(" OrderId='{0}'", orderInfo.OrderID)); } } #endregion bllMall.Update(orderInfo, string.Format("PaymentStatus=1,Status='待发货',PayTime=GETDATE(),DistributionStatus=1"), string.Format("ParentOrderId='{0}'", orderInfo.OrderID)); //} #endregion 原订单修改状态 try { //设置交易流水号 orderInfo.PayTranNo = parametersAll["transaction_id"]; } catch (Exception ex) { Tolog("设置交易流水号失败:" + ex.Message); } } bool result = false; if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType)) { if (string.IsNullOrWhiteSpace(hasOrderIDs)) { hasOrderIDs = "'0'"; } result = bllMall.Update(new WXMallOrderInfo(), string.Format("PaymentStatus={0},PayTime=GetDate(),Status='{1}'", 1, "预约成功"), string.Format("OrderID='{0}' and WebsiteOwner='{4}' AND (select count(1) from [ZCJ_WXMallOrderInfo] where Status='{3}' and WebsiteOwner='{4}' and OrderID IN({1}))<{2}", orderInfo.OrderID, hasOrderIDs, maxCount, "预约成功", bllMall.WebsiteOwner) ) > 0; if (result) { // #region 交易成功加积分 //增加积分 (慧聚不需要) //if (orderInfo.TotalAmount > 0) //{ // ScoreConfig scoreConfig = bllScore.GetScoreConfig(); // int addScore = 0; // if (scoreConfig != null && scoreConfig.OrderAmount > 0 && scoreConfig.OrderScore > 0) // { // addScore = (int)(orderInfo.PayableAmount / (scoreConfig.OrderAmount / scoreConfig.OrderScore)); // } // if (addScore > 0) // { // if (bllUser.Update(new UserInfo(), // string.Format(" TotalScore+={0},HistoryTotalScore+={0}", addScore), // string.Format(" UserID='{0}'", orderInfo.OrderUserID)) > 0) // { // UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); // scoreRecord.AddTime = DateTime.Now; // scoreRecord.Score = addScore; // scoreRecord.ScoreType = "OrderSuccess"; // scoreRecord.UserID = orderInfo.OrderUserID; // scoreRecord.AddNote = "预约-交易成功获得积分"; // bllMall.Add(scoreRecord); // } // } //} // #endregion #region 修改其他预约订单为预约失败 返还积分 if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType) && !string.IsNullOrWhiteSpace(hasOrderIDs)) { int tempCount = 0; List <WXMallOrderInfo> tempList = bllMall.GetOrderList(0, 1, "", out tempCount, "预约成功", null, null, null, null, null, null, null, null, null, null, orderInfo.ArticleCategoryType, hasOrderIDs); tempCount = tempCount + 1; //加上当前订单的数量 if (tempCount >= maxCount) { tempList = bllMall.GetColOrderListInStatus("'待付款','待审核'", hasOrderIDs, "OrderID,OrderUserID,UseScore", bllMall.WebsiteOwner); if (tempList.Count > 0) { string stopOrderIds = MyStringHelper.ListToStr(tempList.Select(p => p.OrderID).ToList(), "'", ","); tempList = tempList.Where(p => p.UseScore > 0).ToList(); foreach (var item in tempList) { orderUserInfo.TotalScore += item.UseScore; if (bllUser.Update(new UserInfo(), string.Format(" TotalScore+={0}", item.UseScore), string.Format(" UserID='{0}'", item.OrderUserID)) > 0) { UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); scoreRecord.AddTime = DateTime.Now; scoreRecord.Score = item.UseScore; scoreRecord.TotalScore = orderUserInfo.TotalScore; scoreRecord.ScoreType = "OrderCancel"; scoreRecord.UserID = item.OrderUserID; scoreRecord.RelationID = item.OrderID; scoreRecord.AddNote = "预约-订单失败返还积分"; scoreRecord.WebSiteOwner = item.WebsiteOwner; bllMall.Add(scoreRecord); } } bllMall.Update(new WXMallOrderInfo(), string.Format("Status='{0}'", "预约失败"), string.Format("OrderID In ({0}) and WebsiteOwner='{1}'", stopOrderIds, bllMall.WebsiteOwner)); } } //Tolog("更改修改其他预约为预约失败"); } #endregion } } else { result = bllMall.Update(orderInfo); } if (result) { #region 拼团订单 if (orderInfo.OrderType == 2) { try { if (!string.IsNullOrEmpty(orderInfo.GroupBuyParentOrderId)) { var parentOrderInfo = bllMall.GetOrderInfo(orderInfo.GroupBuyParentOrderId); if (parentOrderInfo.Ex10 == "1") { if (bllMall.GetCount <WXMallOrderInfo>(string.Format("PaymentStatus=1 And GroupBuyParentOrderId='{0}' ", parentOrderInfo.OrderID)) >= parentOrderInfo.PeopleCount) { bllMall.Update(new WXMallOrderInfo(), string.Format("Status='已取消'"), string.Format(" GroupBuyParentOrderId='{0}' And PaymentStatus=0", parentOrderInfo.OrderID)); parentOrderInfo.GroupBuyStatus = "1"; bllMall.Update(parentOrderInfo); } } else { if (bllMall.GetCount <WXMallOrderInfo>(string.Format("PaymentStatus=1 And GroupBuyParentOrderId='{0}' Or OrderId='{0}'", parentOrderInfo.OrderID)) >= parentOrderInfo.PeopleCount) { bllMall.Update(new WXMallOrderInfo(), string.Format("Status='已取消'"), string.Format(" GroupBuyParentOrderId='{0}' And PaymentStatus=0", parentOrderInfo.OrderID)); parentOrderInfo.GroupBuyStatus = "1"; bllMall.Update(parentOrderInfo); } } } } catch (Exception) { } } #endregion Open.HongWareSDK.Client hongWareClient = new Open.HongWareSDK.Client(orderInfo.WebsiteOwner); //Tolog("更改状态true"); #region Efast同步 //判读当前站点是否需要同步到驿氪和efast if (bllCommRelation.ExistRelation(BLLJIMP.Enums.CommRelationType.SyncEfast, bllCommRelation.WebsiteOwner, "")) { try { Tolog("开始同步efast"); string outOrderId = string.Empty, msg = string.Empty; var syncResult = bllEfast.CreateOrder(orderInfo.OrderID, out outOrderId, out msg); if (syncResult) { orderInfo.OutOrderId = outOrderId; bllMall.Update(orderInfo); } Tolog(string.Format("efast订单同步结果:{0},订单号:{1},提示信息:{2}", syncResult, outOrderId, msg)); } catch (Exception ex) { Tolog("efast订单同步异常:" + ex.Message); } } #endregion #region 驿氪同步 if (bllCommRelation.ExistRelation(BLLJIMP.Enums.CommRelationType.SyncYike, bllCommRelation.WebsiteOwner, "")) { try { Tolog("开始同步驿氪"); //同步成功订单到驿氪 //UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID); //if ((!string.IsNullOrEmpty(orderUserInfo.Ex1)) && (!string.IsNullOrEmpty(orderUserInfo.Ex2)) && (!string.IsNullOrEmpty(orderUserInfo.Phone))) //{ // client.BonusUpdate(orderUserInfo.Ex2, -(orderInfo.UseScore), "商城下单使用积分" + orderInfo.UseScore); //} var uploadOrderResult = yikeClient.OrderUpload(orderInfo); Tolog(string.Format("驿氪订单同步结果:{0}", Common.JSONHelper.ObjectToJson(uploadOrderResult))); } catch (Exception ex) { Tolog("驿氪订单同步异常:" + ex.Message); } } #endregion #region 付款加积分 try { bllUser.AddUserScoreDetail(orderInfo.OrderUserID, CommonPlatform.Helper.EnumStringHelper.ToString(ZentCloud.BLLJIMP.Enums.ScoreDefineType.OrderPay), bllMall.WebsiteOwner, null, null); } catch (Exception) { } #endregion #region 消息通知 if (!BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType)) { try { var productName = bllMall.GetOrderDetailsList(orderInfo.OrderID)[0].ProductName; string remark = ""; if (!string.IsNullOrEmpty(orderInfo.OrderMemo)) { remark = string.Format("客户留言:{0}", orderInfo.OrderMemo); } bllWeiXin.SendTemplateMessageToKefu("有新的订单", string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}\\n商品:{4}\\n{5}", orderInfo.OrderID, Math.Round(orderInfo.TotalAmount, 2), orderInfo.Consignee, orderInfo.Phone, productName, remark)); if (orderInfo.OrderType != 4)//付费的活动不发消息 { if (orderInfo.WebsiteOwner != "jikuwifi") { string url = string.Format("http://{0}/customize/shop/?v=1.0&ngroute=/orderDetail/{1}#/orderDetail/{1}", Request.Url.Host, orderInfo.OrderID); if (orderInfo.IsMain == 1) { url = string.Format("http://{0}/customize/shop/?v=1.0&ngroute=/orderList#/orderList", Request.Url.Host); } bllWeiXin.SendTemplateMessageNotifyComm(orderUserInfo, "订单已成功支付,我们将尽快发货,请保持手机畅通等待物流送达!", string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}\\n商品:{4}...\\n查看详情", orderInfo.OrderID, Math.Round(orderInfo.TotalAmount, 2), orderInfo.Consignee, orderInfo.Phone, productName), url); } } } catch (Exception) { } } else { try { bllWeiXin.SendTemplateMessageToKefu(orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元\\n预约人:{3}\\n预约人手机:{4}", orderInfo.OrderID, orderInfo.TotalAmount, tProductInfo.PName, orderUserInfo.TrueName, orderUserInfo.Phone)); bllWeiXin.SendTemplateMessageNotifyComm(orderUserInfo, orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元", orderInfo.OrderID, orderInfo.TotalAmount, tProductInfo.PName)); } catch (Exception) { } } #endregion WebsiteInfo websiteInfo = bllMall.Get <WebsiteInfo>(string.Format(" WebsiteOwner='{0}'", orderInfo.WebsiteOwner)); #region 分销相关 try { if (bllMenuPermission.CheckUserAndPmsKey(websiteInfo.WebsiteOwner, BLLPermission.Enums.PermissionSysKey.OnlineDistribution, websiteInfo.WebsiteOwner)) { if (string.IsNullOrWhiteSpace(orderUserInfo.DistributionOwner)) { if (websiteInfo.DistributionRelationBuildMallOrder == 1) { orderUserInfo.DistributionOwner = orderInfo.WebsiteOwner; bllMall.Update(orderUserInfo); } } bllDis.AutoUpdateLevel(orderInfo); bllDis.TransfersEstimate(orderInfo); bllDis.SendMessageToUser(orderInfo); bllDis.UpdateDistributionSaleAmountUp(orderInfo); } } catch (Exception ex) { Tolog("设置分销员异常:" + ex.Message + " 用户id:" + orderUserInfo.UserID); } #endregion #region 宏巍通知 try { if (websiteInfo.IsUnionHongware == 1) { hongWareClient.OrderNotice(orderUserInfo.WXOpenId, orderInfo.OrderID); } } catch (Exception) { } #endregion bllCard.Give(orderInfo.TotalAmount, orderUserInfo); string v1ProductId = Common.ConfigHelper.GetConfigString("YGBV1ProductId"); string v2ProductId = Common.ConfigHelper.GetConfigString("YGBV2ProductId"); string v1CouponId = Common.ConfigHelper.GetConfigString("YGBV1CouponId"); string v2CouponId = Common.ConfigHelper.GetConfigString("YGBV2CouponId"); List <WXMallOrderDetailsInfo> orderDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID); foreach (var item in orderDetailList) { item.IsComplete = 1; bllMall.Update(item); #region 购买指定商品发送指定的优惠券 if (!string.IsNullOrEmpty(v1ProductId) && !string.IsNullOrEmpty(v1CouponId) && item.PID == v1ProductId) { bllCard.SendCardCouponsByCurrUserInfo(orderUserInfo, v1CouponId); } if (!string.IsNullOrEmpty(v2ProductId) && !string.IsNullOrEmpty(v2CouponId) && item.PID == v2ProductId) { bllCard.SendCardCouponsByCurrUserInfo(orderUserInfo, v2CouponId); } #endregion } //更新销量 bllMall.UpdateProductSaleCount(orderInfo); Response.Write(successXml); return; } else { Tolog("更改状态false"); Response.Write(failXml); return; } } Tolog("返回信息有误"); Response.Write(failXml); } catch (Exception ex) { Tolog("出错了:" + ex.Message); Response.Write(failXml); } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html"; try { // UserInfo distributionOffLineCommendUser = null;//分销推荐人 //bool isDistributionOffLineApply = false;//是否线下分销申请 dicPar = bll.GetRequestParameter(); string weixinOpenID = null; //微信openid string activityId = null; //活动编号 dicPar.TryGetValue("ActivityID", out activityId); string spreadUserId = null; dicPar.TryGetValue("SpreadUserID", out spreadUserId);//推广用户的用户名 string shareUserId = string.Empty; dicPar.TryGetValue("ShareUserID", out shareUserId); string shareId = string.Empty; dicPar.TryGetValue("ShareID", out shareId); string strDistinctKeys = null; //检查重复的字段,多个字段用,分隔, //没有此参数默认用手机检查 dicPar.TryGetValue("DistinctKeys", out strDistinctKeys); string monitorPlanID = null; //监测任务ID dicPar.TryGetValue("MonitorPlanID", out monitorPlanID); string name = null; //姓名 dicPar.TryGetValue("Name", out name); string phone = null; //手机 dicPar.TryGetValue("Phone", out phone); string isSaveUserInfo = string.Empty; dicPar.TryGetValue("IsSaveUserInfo", out isSaveUserInfo); //activity = bll.Get<ActivityInfo>(string.Format("ActivityID='{0}'", activityId)); #region IP限制 //获取用户IP; string userHostAddress = context.Request.UserHostAddress; var count = DataCache.GetCache(userHostAddress); if (count != null) { int newCount = int.Parse(count.ToString()) + 1; DataCache.SetCache(userHostAddress, newCount); int limitCount = 1000; //if (activity != null) //{ // //limitCount = activity.LimitCount; //} if (newCount >= limitCount) { resp.Status = 14; resp.Msg = "您的提交过于频繁,请稍后再试"; goto outoff; } } else { DataCache.SetCache(userHostAddress, 1, DateTime.MaxValue, new TimeSpan(4, 0, 0)); } #endregion #region 判断必填项 if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(phone)) { resp.Status = 3; resp.Msg = "姓名和手机不能为空!"; goto outoff; } //if ((!Common.ValidatorHelper.PhoneNumLogicJudge(Phone))&&(!Phone.Equals("systemdefault")))//系统缺省手机号不检查 //{ // resp.Status = 5; // resp.Msg = "手机号码无效!"; // goto outoff; //} if (((!phone.StartsWith("1")) || (!phone.Length.Equals(11))) && (!phone.Equals("systemdefault")))//系统缺省手机号不检查 { resp.Status = 5; resp.Msg = "手机号码无效!"; goto outoff; } if (string.IsNullOrEmpty(activityId)) { resp.Status = 6; resp.Msg = "活动编号不能为空!"; goto outoff; } //手机注册的重复数据 UserInfo dicUser = bllUser.Get <UserInfo>(string.Format(" WebsiteOwner='{0}' AND Phone='{1}' AND WXOpenId is null ", bllUser.WebsiteOwner, phone)); if (dicUser != null) { dicUser.Phone3 = phone; dicUser.Phone = ""; bllUser.Update(dicUser); } #endregion #region 活动权限验证 //if (activity == null) //{ // resp.Status = 7; // resp.Msg = "活动编号不存在!"; // goto outoff; //} //if (activity.ActivityStatus.Equals(0)) //{ // resp.Status = 8; // resp.Msg = "活动已关闭!"; // goto outoff; //} //if (activity.IsDelete.Equals(1)) //{ // resp.Status = -1; // resp.Msg = "活动已删除!"; // goto outoff; //} #endregion #region 是否可以报名 if (bll.IsLogin) { currentUserInfo = bll.GetCurrentUserInfo(); if (!string.IsNullOrEmpty(currentUserInfo.WXOpenId)) { weixinOpenID = currentUserInfo.WXOpenId; } } juActivityInfo = bll.Get <JuActivityInfo>(string.Format("SignUpActivityID={0}", dicPar["ActivityID"])); if (juActivityInfo != null) { #region 活动已经停止 if (juActivityInfo.IsHide.Equals(1)) { resp.Status = 14; resp.Msg = "活动已停止"; goto outoff; } #endregion #region 检查报名人数 if (juActivityInfo.MaxSignUpTotalCount > 0)//检查报名人数 { if (juActivityInfo.SignUpTotalCount > (juActivityInfo.MaxSignUpTotalCount - 1)) { resp.Status = 15; resp.Msg = "报名人数已满"; goto outoff; } } #endregion #region 检查积分 if (juActivityInfo.ActivityIntegral > 0) { if (!bll.IsLogin) { resp.Status = 12; resp.Msg = "此活动必须登录才能报名"; goto outoff; } else { if (currentUserInfo.TotalScore < juActivityInfo.ActivityIntegral) { resp.Status = 13; resp.Msg = "您的积分不足,无法报名"; goto outoff; } } } #endregion #region 指定标签的用户可以报名 if (!string.IsNullOrEmpty(juActivityInfo.Tags)) { if (!bll.IsLogin) { resp.Status = 12; resp.Msg = "此活动必须登录才能报名"; goto outoff; } if (string.IsNullOrEmpty(currentUserInfo.TagName)) { resp.Status = 12; resp.Msg = "此活动只接受特定用户的报名"; goto outoff; } bool checkResult = false; foreach (string item in currentUserInfo.TagName.Split(',')) { if (juActivityInfo.Tags.Contains(item)) { checkResult = true; break; } } if (!checkResult) { resp.Status = 12; resp.Msg = "此活动只接受特定用户的报名"; goto outoff; } } #endregion } #endregion #region 检查自定义必填项 List <ActivityFieldMappingInfo> requiredFieldList = bll.GetList <ActivityFieldMappingInfo>(string.Format("ActivityID='{0}' And FieldIsNull=1", juActivityInfo.SignUpActivityID)); if (requiredFieldList.Count > 0) { foreach (var requiredField in requiredFieldList) { if (string.IsNullOrEmpty(dicPar.SingleOrDefault(p => p.Key.Equals(string.Format("K{0}", requiredField.ExFieldIndex))).Value)) { resp.Status = 11; resp.Msg = string.Format(" {0} 必填", requiredField.MappingName); goto outoff; } } } #endregion #region 检查数据格式 //检查数据格式 List <ActivityFieldMappingInfo> activityFieldMappingList = bll.GetList <ActivityFieldMappingInfo>(string.Format("ActivityID='{0}'", juActivityInfo.SignUpActivityID)); foreach (var item in activityFieldMappingList) { string value = dicPar.SingleOrDefault(p => p.Key.Equals(string.Format("K{0}", item.ExFieldIndex))).Value; if (string.IsNullOrWhiteSpace(value)) { continue; } //检查数据格式 if (item.FormatValiFunc == "email")//email检查 { if (!Common.ValidatorHelper.EmailLogicJudge(value)) { resp.Status = 12; resp.Msg = string.Format("{0}格式不正确", item.MappingName); goto outoff; } } if (item.FormatValiFunc == "url") //url检查 { System.Text.RegularExpressions.Regex regUrl = new System.Text.RegularExpressions.Regex(@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"); //网址 System.Text.RegularExpressions.Match match = regUrl.Match(value); if (!match.Success) { resp.Status = 13; resp.Msg = string.Format("{0}格式不正确", item.MappingName); goto outoff; } } } #endregion #region 检查是否已经报名 //if (activityId != bllDis.GetDistributionOffLineApplyActivityID())//线下分销不检查 //{ if (!string.IsNullOrEmpty(strDistinctKeys)) { if (!strDistinctKeys.Equals("none"))//自定义检查重复 { System.Text.StringBuilder sbWhere = new System.Text.StringBuilder("1=1 "); string[] distinctKeys = strDistinctKeys.Split(','); foreach (var item in distinctKeys) { sbWhere.AppendFormat("And {0}='{1}' ", item, dicPar.Single(p => p.Key.Equals(item)).Value); } sbWhere.Append(" and IsDelete = 0 "); if (bll.GetCount <ActivityDataInfo>(sbWhere.ToString()) > 0) { resp.Status = 1; resp.Msg = "重复的报名!"; goto outoff; } } else//不检查重复 { } } else//默认检查 { if (bll.GetCount <ActivityDataInfo>(string.Format("ActivityID='{0}' And Phone='{1}' and IsDelete = 0 ", activityId, phone)) > 0) { resp.Status = 1; resp.Msg = "已经报过名了!"; goto outoff; } } //} #endregion //if (activityId == bllDis.GetDistributionOffLineApplyActivityID())//如果当前活动是分销 //{ // if (bll.GetCount<ActivityDataInfo>(string.Format("ActivityID='{0}' And UserId='{1}' and IsDelete = 0 ", activityId, currentUserInfo.UserID)) > 0) // { // bll.Update(new ActivityDataInfo(), string.Format("IsDelete=1"), string.Format(" ActivityID='{0}' And UserId='{1}'", activityId, currentUserInfo.UserID)); // } //} //#region 检查手机验证码 特殊化 ////if (ActivityID.Equals("186135")) ////{ //// string VerCode = HttpContext.Current.Session["SmsVerificationCode"] == null ? "" : HttpContext.Current.Session["SmsVerificationCode"].ToString(); //// if (string.IsNullOrEmpty(context.Request["SmsVerificationCode"])) //// { //// resp.Status = 12; //// resp.Msg = "请输入手机验证码"; //// goto outoff; //// } //// if (!context.Request["SmsVerificationCode"].ToString().Equals(VerCode)) //// { //// resp.Status = 13; //// resp.Msg = "手机验证码不正确"; //// goto outoff; //// } ////} //#endregion var newActivityUID = 1001; var lastActivityDataInfo = bll.Get <ActivityDataInfo>(string.Format("ActivityID='{0}' order by UID DESC", activityId)); if (lastActivityDataInfo != null) { newActivityUID = lastActivityDataInfo.UID + 1; } ActivityDataInfo model = bll.ConvertRequestToModel <ActivityDataInfo>(new ActivityDataInfo()); model.UID = newActivityUID; model.WeixinOpenID = weixinOpenID; model.SpreadUserID = spreadUserId; if (spreadUserId == currentUserInfo.UserID) { model.SpreadUserID = bll.WebsiteOwner; } if (!string.IsNullOrEmpty(monitorPlanID)) { model.MonitorPlanID = int.Parse(monitorPlanID); } model.ShareUserID = string.IsNullOrWhiteSpace(shareUserId) ? "" : shareUserId; model.ShareID = string.IsNullOrWhiteSpace(shareId) ? "" : shareId; model.WebsiteOwner = bll.WebsiteOwner; if (bll.IsLogin) { model.UserId = bll.GetCurrUserID(); } //保存分销推荐码 // model.DistributionOffLineRecommendCode = context.Request["DistributionOffLineRecommendCode"]; //if (!string.IsNullOrWhiteSpace(model.DistributionOffLineRecommendCode)) //{ // bool isTrueCode = false; // int userAutoId = 0; // if (int.TryParse(model.DistributionOffLineRecommendCode, out userAutoId)) // { // distributionOffLineCommendUser = bllUser.GetUserInfoByAutoID(userAutoId); // if (distributionOffLineCommendUser != null) // { // //是站点用户或者是当前站点的分销员才有效 // if (bll.WebsiteOwner.ToLower() == distributionOffLineCommendUser.UserID.ToLower()) // { // isTrueCode = true; // } // else if (distributionOffLineCommendUser.WebsiteOwner.ToLower() == bll.WebsiteOwner.ToLower() && !string.IsNullOrWhiteSpace(distributionOffLineCommendUser.DistributionOffLinePreUserId)) // { // isTrueCode = true; // } // } // } // if (!isTrueCode) // { // resp.Status = 1; // resp.Msg = "不是有效的推荐码"; // goto outoff; // } // else // { // isDistributionOffLineApply = true; // } // ToLog("isDistributionOffLineApply:" + isDistributionOffLineApply); //} if (bll.Add(model)) { try { //#region 业务分销员申请消息 ////发送模板消息跟系统微客服和他的上级 //ToLog("isDistributionOffLineApply:" + isDistributionOffLineApply); //if (isDistributionOffLineApply) //{ // ToLog("申请成为财富会员,发送消息给系统管理员"); // //发送消息给他上级 // //bllWeixin.SendTemplateMessageNotifyComm(distributionOffLineCommendUser.WXOpenId, "财富伙伴申请", string.Format("姓名:{0}\\n手机号:{1}", model.Name, model.Phone)); // //发送消息给系统管理员 // // WXKeFu kefuInfo = bllWeixin.GetDefaultKefu(); // //ToLog("客服实体:" + JSONHelper.ObjectToJson(kefuInfo)); // bllWeixin.SendTemplateMessageToKefu(string.Format("用户“{0}”申请成为财富会员", model.Name), string.Format("姓名:{0}\\n手机号:{1}", model.Name, model.Phone)); //} //#endregion #region 个人资料补足 if (bll.IsLogin) { //个人资料补足 bool isEdit = false; isSaveUserInfo = "1"; if (string.IsNullOrWhiteSpace(currentUserInfo.TrueName)) { isEdit = true; currentUserInfo.TrueName = model.Name; } if (string.IsNullOrWhiteSpace(currentUserInfo.Phone)) { isEdit = true; currentUserInfo.Phone = model.Phone; } List <BLLJIMP.Model.ActivityFieldMappingInfo> mapingList = this.bll.GetList <BLLJIMP.Model.ActivityFieldMappingInfo>(string.Format(" ActivityID = '{0}' ", model.ActivityID)); foreach (var item in mapingList) { string value = ""; if (item.MappingName.IndexOf("邮箱") > -1 || item.MappingName.IndexOf("邮件") > -1 || item.MappingName.ToLower().IndexOf("email") > -1) { isEdit = true; value = dicPar.SingleOrDefault(p => p.Key.Equals(string.Format("K{0}", item.ExFieldIndex))).Value; if (string.IsNullOrWhiteSpace(currentUserInfo.Email)) { currentUserInfo.Email = value; } continue; } if (item.MappingName.IndexOf("职位") > -1) { isEdit = true; value = dicPar.SingleOrDefault(p => p.Key.Equals(string.Format("K{0}", item.ExFieldIndex))).Value; if (string.IsNullOrWhiteSpace(currentUserInfo.Postion)) { currentUserInfo.Postion = value; } continue; } if (item.MappingName.IndexOf("公司") > -1) { isEdit = true; value = dicPar.SingleOrDefault(p => p.Key.Equals(string.Format("K{0}", item.ExFieldIndex))).Value; if (value.Length >= 255) { resp.Status = 3; resp.Msg = "公司名称过长!"; goto outoff; } if (string.IsNullOrWhiteSpace(currentUserInfo.Company)) { currentUserInfo.Company = value; } continue; } } if (isEdit) { this.bll.Update(new UserInfo(), string.Format(" TrueName='{0}',Phone='{1}',Email='{2}',Postion='{3}',Company='{4}' ", currentUserInfo.TrueName, currentUserInfo.Phone, currentUserInfo.Email, currentUserInfo.Postion, currentUserInfo.Company ), string.Format(" AutoID = {0} ", this.currentUserInfo.AutoID) ); } //if (isEdit && !string.IsNullOrWhiteSpace(isSaveUserInfo)) //{ // if (isSaveUserInfo == "1") // { // this.bll.Update(new UserInfo(), // string.Format(" TrueName='{0}',Phone='{1}',Email='{2}',Postion='{3}',Company='{4}' ", // currentUserInfo.TrueName, // currentUserInfo.Phone, // currentUserInfo.Email, // currentUserInfo.Postion, // currentUserInfo.Company // ), // string.Format(" AutoID = {0} ", this.currentUserInfo.AutoID) // ); // } //} //if (bll.IsLogin) //{ // var websiteInfo = bll.GetWebsiteInfoModelFromDataBase(); // if (websiteInfo.IsSynchronizationData != null) // { // if (websiteInfo.IsSynchronizationData.Value == 1) // { // bllUser.Update(currentUserInfo); // } // } //} } #endregion #region 检查是否向微信客服号发送通知信息 if (juActivityInfo != null) { //if (!string.IsNullOrEmpty(juActivityInfo.ActivityNoticeKeFuId)) //{ // WXKeFu keFuInfo = bll.Get<WXKeFu>(string.Format("AutoID={0}", juActivityInfo.ActivityNoticeKeFuId)); // if (keFuInfo != null) // { // #region 发送模板消息给客服 // if (juActivityInfo.ArticleType != "greetingcard") // { // bllWeixin.SendTemplateMessageNotifyComm(keFuInfo.WeiXinOpenID, string.Format("{0}有新的报名", juActivityInfo.ActivityName), string.Format("姓名:{0}\\n手机号:{1}", model.Name, model.Phone)); // } // #endregion // } //} #region 发送模板消息给客服 if (juActivityInfo.ArticleType != "greetingcard") { bllWeixin.SendTemplateMessageToKefu(string.Format("{0}有新的报名", juActivityInfo.ActivityName), string.Format("姓名:{0}\\n手机号:{1}", model.Name, model.Phone)); } #endregion juActivityInfo.SignUpCount = juActivityInfo.SignUpTotalCount + 1; bll.Update(juActivityInfo); } #endregion #region 更新转发表报名数量 MonitorLinkInfo linkModel = bll.Get <MonitorLinkInfo>(string.Format(" MonitorPlanID={0} AND LinkName='{1}' ", monitorPlanID, spreadUserId)); int signupCount = bll.GetCount <ActivityDataInfo>(string.Format("MonitorPlanID={0} And SpreadUserID='{1}' And IsDelete=0", int.Parse(monitorPlanID), spreadUserId)); if (linkModel != null) { linkModel.ActivitySignUpCount = signupCount; bll.Update(linkModel); } #endregion //#region 向报名人发送公众号模板消息-仅五步会有效 //if (bll.WebsiteOwner == "wubuhui") //{ // if (bllWeixin.IsLogin) // { // string accessToken = bllWeixin.GetAccessToken(); // if (accessToken != string.Empty) // { // BLLWeixin.TMSignupNotification notificaiton = new BLLWeixin.TMSignupNotification(); // notificaiton.Url = string.Format("http://{0}/WuBuHui/MyCenter/Index.aspx", System.Web.HttpContext.Current.Request.Url.Host); // notificaiton.TemplateId = "-eJq0w8PEFQRLnWXwqKn73zWvAah6nJxYHgEK3L4Pek"; // notificaiton.First = "恭喜您成功报名我们的活动"; // notificaiton.Keynote1 = juActivityInfo.ActivityName; // notificaiton.Keynote2 = juActivityInfo.ActivityStartDate.ToString(); // notificaiton.Keynote3 = juActivityInfo.ActivityAddress; // notificaiton.Remark = "欢迎您届时参加!"; // bllWeixin.SendTemplateMessage(accessToken, currentUserInfo.WXOpenId, notificaiton); // } // } //} //#endregion #region 发送模板消息给用户 if ((currentUserInfo != null)) { if (juActivityInfo.ArticleType != "greetingcard" && juActivityInfo.IsFee == 0) { bllWeixin.SendTemplateMessageNotifyComm(currentUserInfo, string.Format("您已成功报名{0}", juActivityInfo.ActivityName), string.Format("姓名:{0}\\n手机号:{1}", model.Name, model.Phone)); } if (juActivityInfo.IsFee == 1)//收费活动 { if (model.Amount > 0) { bllWeixin.SendTemplateMessageNotifyComm(currentUserInfo, string.Format("您已报名{0},该活动收费,请尽快完成支付。", juActivityInfo.ActivityName), ""); } } } #endregion #region 微转发自动成为线上分销员 if (!string.IsNullOrEmpty(model.SpreadUserID)) { if (bll.IsLogin) { try { WebsiteInfo websiteInfo = bll.GetWebsiteInfoModelFromDataBase(); if (websiteInfo.DistributionRelationBuildSpreadActivity == 1) { UserInfo recommentUserInfo = bllUser.GetUserInfo (spreadUserId); //ActivityInfo disActivityInfo = bll.GetActivityInfoByActivityID(bllDis.GetDistributionOffLineApplyActivityID()); //bllDis.AutoApply(currentUserInfo, activity, disActivityInfo, recommentUserInfo, model); if (bllUser.IsDistributionMember(recommentUserInfo) || (recommentUserInfo.UserID == websiteInfo.WebsiteOwner)) { bllDisOnLine.SetUserDistributionOwner(currentUserInfo.UserID, recommentUserInfo.UserID, currentUserInfo.WebsiteOwner); } } } catch (Exception ex) { ToLog(ex.ToString()); } } } #endregion juActivityInfo = bllJuactivity.GetJuActivityByActivityID(activityId); } catch (Exception) { } resp.Msg = "提交成功!"; //Dictionary<string, object> exObj = new Dictionary<string, object>(); //exObj.Add("Activity", Activity); //exObj.Add("ActivityData", model); //exObj.Add("ActivityFieldMapping", activityFieldMapping); //resp.ExObj = exObj; resp.ExInt = model.UID; if (juActivityInfo != null) { resp.ExStr = juActivityInfo.ActivitySignuptUrl; } // 推荐报名活动加积分 if (!string.IsNullOrEmpty(spreadUserId)) { if (spreadUserId != currentUserInfo.UserID) { UserInfo recommentUserInfo = bllUser.GetUserInfo(spreadUserId); bllUser.AddUserScoreDetail(recommentUserInfo.UserID, CommonPlatform.Helper.EnumStringHelper.ToString(ZentCloud.BLLJIMP.Enums.ScoreDefineType.RecommendSignUpActivityAddScore), recommentUserInfo.WebsiteOwner, null, null); } } #region MyRegion if (!string.IsNullOrEmpty(context.Request["AutoSignIn"])) { if (context.Request["AutoSignIn"].ToString() == "1") { try { WXSignInInfo signInInfo = new WXSignInInfo(); signInInfo.SignInUserID = currentUserInfo.UserID; signInInfo.Name = model.Name; signInInfo.Phone = model.Phone; signInInfo.JuActivityID = juActivityInfo.JuActivityID; signInInfo.SignInOpenID = currentUserInfo.WXOpenId; signInInfo.SignInTime = DateTime.Now; //判断是否已经签到过 if (!bllJuactivity.Exists(signInInfo, new List <string>() { "SignInUserID", "JuActivityID" })) { if (bllJuactivity.Add(signInInfo)) { bllUser.AddUserScoreDetail(currentUserInfo.UserID, CommonPlatform.Helper.EnumStringHelper.ToString(ZentCloud.BLLJIMP.Enums.ScoreDefineType.SignIn), currentUserInfo.WebsiteOwner, null, null); } } } catch (Exception) { } } } #endregion goto outoff; } else { resp.Status = 2; resp.Msg = "报名失败,请重试或联系管理员!"; goto outoff; } } catch (Exception ex) { //using (StreamWriter sw = new StreamWriter(@"C:\log.txt", true, System.Text.Encoding.GetEncoding("gb2312"))) //{ // sw.WriteLine(ex.Data); //} resp.Status = 10; resp.Msg = "报名失败:" + ex.ToString(); goto outoff; //日志记录 } outoff: context.Response.Write(Common.JSONHelper.ObjectToJson(resp)); }
public void ProcessRequest(HttpContext context) { try { Tolog("京东支付通知start"); var payConfig = bllPay.GetPayConfig(); byte[] byts = new byte[context.Request.InputStream.Length]; context.Request.InputStream.Read(byts, 0, byts.Length); string req = Encoding.UTF8.GetString(byts); Tolog("通知参数" + req); //var jdPubKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCKE5N2xm3NIrXON8Zj19GNtLZ8xwEQ6uDIyrS3S03UhgBJMkGl4msfq4Xuxv6XUAN7oU1XhV3/xtabr9rXto4Ke3d6WwNbxwXnK5LSgsQc1BhT5NcXHXpGBdt7P8NMez5qGieOKqHGvT0qvjyYnYA29a8Z4wzNR7vAVHp36uD5RwIDAQAB"; //req = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><jdpay><version>V2.0</version><merchant>110226843002</merchant><result><code>000000</code><desc>success</desc></result><encrypt>MDIxZjNkNjI1YjU1NzQ4MWE5N2ExMTg3YjkxNmQ4NzkxYzQyMmFjZjM4YTM1MjZjY2JjNzM1ZDkxY2Q5ZDNmMTMzMGFjYTBkNTI0MzYzNjc3MTVhODI3OWUzZTAxMmY5ODEyOTVmNDNiNWY5MDZhZGJiYTcwYTYyOTFlYzVmYTU2Y2EyN2U1YzhkNzllMGE3ZTUyNDE4NWU4OWMxNjIwNDFkODcyYzJiZDA4ZWY4YWEyMmY5ZWUxNDk3YTg3MTI3YmU1NTMxNjc5NWJiOTlmN2ZmNGU1MTc1YWJhNjNkYjUzYWUwZDQzOTk4ZjIzMjBiYmVkNGJkMDcxOWUzOThjZjU1ODUwNzM4Y2RiNzM2Njc1N2U2ZTcxN2Q0N2ZiYTZmN2M1YzBiYzRmMjc4ZThiZDNhYTkxZTExNzBiYjg2ZDNjNmQ3OWUyZTBlYjUzZWNlZjFjODQ2MzdiN2E5MTQxN2Y3NmRhZmNkNDdiMzMwNjc1MGRhYjhiYzg0NTFkOWNiY2QyMDZhOTJiYzU2YTFiOWEwMjRmNTZhMWZhNTVhNjlmYTA1ZDFlMmI0YTI4MGE1YTU0N2NlMjc3ZWMwM2QyNWE4ODdlOTA0ZGM3YTY2MDViY2I1OTI5MDBlYWU4MGU0Mzc4MmEwOWY3ZjEwZTk5MGZkOGUzYTA4MzNkNGMyZGZkNWM3MDhkOGU4N2NhMmQyZGM1MDgwYzUyOTg3OGNkMzFhZWRkMTE1NDM5ZjExYTM2OGM2OGE4MGZjZTYyMjJkNzlmODcwNGYyNDMzMTYyZThhZTBkODM2ODBjYzg5ZGRjMWY3ZGVmYzQzYjc4MDZiMDNhMTBmZTc2YjI3MThjYjQ0YjQwZDkyY2E3OGUzYmYzZmFlNjBlOTI4OGU1ODVkNjBjMWZiNDBmMjFjNzVmNDkxYmRkYWFlNzQ0YjZkYmU1ODNkOWQ4OGYwN2EyMDViOWQ5MGNjMzViMTE3MDQ4NWVlNTdlN2Y5MTRhZDM3YzFlODY1NDFiZmQyNDg1MzhlZGZiNDNiZWZmZjY3YmE3NWQ5YjI0MzE4ZDMzMDE5NTE3YWM4ZTJiMDZhZWYyM2NhNjMwODc3MDhkNTdkZWI3MWVhMmY2MzA2ZDliZjBmZGFlNzQ3ODgzODg0ZjVhOWFkODIxYWM0NGQ1ZDlmMGRlNDhkMjBiYTJjYmQ4NTlkMmU3NDMxZDExZmRjMzkxMDU3ZmE3NGE0Yzg2OThkMmY0ZWQ1ZjE3MjIwOWQ1ZTBmZGIzZjFhNGYwOTllZWY5YzRiMWYyZDAxZjlhNzhlYWY5ZjU0YmIyZjczNmUxMjJkNWY2NzhlMDFmYjU0YjY3NWRlYTc1ZWZkNmMwNTJhZmY3ZGVhMGM5NjAyMWQwMGQyMjI2NzdhM2RlNDdhMTdkMWI4ZWQxYmEyYWZlZDg1ZjI4NDk2ZmI2MGVjOTc5OTc4MjgzZTEyNzY2ZmI1OWUzZjY1MWI4OTVlMmQ4OGNlNGRhODg0NzJiNTFiN2RmZDc5NzdkNDk4NTY0NGU4ZjBmNGZjMTM3MmUzMGNhMTUwOTFkNDFhODIzMjZiODU0YjMzNmI1N2EwZDVjMjZjOWNjMzBlMjFjZjNkMDA0NjQ4Zjk0NjQzZWRhOTU1MmIyZjJkYzZjNGJmOTU5MDIzNTBlODlmOTNhZDRhYmEyMzZiY2E1OWE4NzY5Mjc0ZTcwN2MyNGFjNGJmOTU5MDIzNTBlODlmNDNlZGE5NTUyYjJmMmRjNjU0MTNlZjYxZTNlODc4MDk3MmNiYjg3NTVjNmU1NWNlZDljNWU0ZDE5ZTRmZjJjZTAxNmJiMGIzYWFlOTdlYTQzYmM5NWVmMGU0ZjUyNzY4NDNlZGE5NTUyYjJmMmRjNmMyOWRiYWZkYTNjYzQ1M2E3ZGJhZWNjZWJmNGIxZmQ5MTMxMmRiMzliOTU2YzBmNmNiODMxMDQ1ZDBiYjM1ZTNmMzlmMGE0ODNiN2M3ODYyZjNjMTFiN2ZiODljNDNkMjE4NGFlNzU5M2JhMmQ2YTJkOWMwMmYxYTBlNTg2MzhkYzU0NzE0NjExNzkyNGU4ZjQ4NDgzMTAyNDY5OGRlNGZiMDVmNGQzNzE3NGMwOGI2NGU2NjkxMmU2NGY5M2I0YjNiMThmMzZiZmY0NTgwN2FjMDAxOWRlY2ZkYTcyOGFmNzIyZTQwNjhlMTViM2UwMmQzMmRiYjJkOTE2MmQzNWMzZWM2OGRkZjJjMjdmOTRhZGNmYzEzOTdlOWY0NjQwODFiYWU0Y2E3Y2NjZDY0NjQzNGFmZWU4ODExYWRiZTBlY2MwY2JlOThmNDliMDZkYjE2YjNjNTZhOTRiOGZkMDU=</encrypt></jdpay>"; //req = Regex.Replace(req, @"[\t\n\r]", "", RegexOptions.IgnoreCase); req = req.Replace("\r", "").Replace("\n", "").Replace("\t", ""); AsynNotifyResponse anyResponse = Payment.JDPay.XMLUtil.decryptResXml <AsynNotifyResponse>(Payment.JDPay.Config.JDPubKey, payConfig.JDPayDESKey, req); // System.Diagnostics.Debug.WriteLine("异步通知订单号:" + anyResponse.tradeNum + ",状态:" + anyResponse.status); Tolog("异步通知订单号:" + anyResponse.tradeNum + ",状态:" + anyResponse.status); var orderId = anyResponse.tradeNum; var orderInfo = bllMall.GetOrderInfo(orderId); if (orderInfo == null) { //context.Response.Write("订单未找到"); context.Response.StatusCode = 500; context.Response.Write(failStr); return; } if (orderInfo.PaymentStatus.Equals(1)) { //Tolog("已支付"); // context.Response.Write("订单已支付"); context.Response.StatusCode = 200; context.Response.Write(successStr); return; } if (anyResponse.status == "2") { orderInfo.PaymentType = 3; //支付成功 WXMallProductInfo tProductInfo = new WXMallProductInfo(); UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID, orderInfo.WebsiteOwner);//下单用户信息 string hasOrderIDs = ""; int maxCount = 1; //Tolog("准备检查更新订单状态"); if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType)) { //Tolog("预订类型"); #region 预约订单修改状态 orderInfo.PaymentStatus = 1; orderInfo.PayTime = DateTime.Now; orderInfo.Status = "预约成功"; #region 检查是否有预约成功的订单 List <WXMallOrderDetailsInfo> tDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID, null, orderInfo.ArticleCategoryType, null, null); List <WXMallOrderDetailsInfo> oDetailList = bllMall.GetOrderDetailsList(null, tDetailList[0].PID, orderInfo.ArticleCategoryType, tDetailList.Min(p => p.StartDate), tDetailList.Max(p => p.EndDate)); tProductInfo = bllMall.GetByKey <WXMallProductInfo>("PID", tDetailList[0].PID); maxCount = tProductInfo.Stock; List <string> hasOrderIDList = new List <string>(); foreach (var item in tDetailList) { List <WXMallOrderDetailsInfo> hasOrderDetailList = oDetailList.Where(p => !((item.StartDate >= p.EndDate && item.EndDate > p.EndDate) || (item.StartDate < p.StartDate && item.EndDate <= p.StartDate))).ToList(); if (hasOrderDetailList.Count >= maxCount) { hasOrderIDList.AddRange(hasOrderDetailList.Select(p => p.OrderID).Distinct()); } } hasOrderIDList = hasOrderIDList.Where(p => !p.Contains(orderInfo.OrderID)).ToList(); if (hasOrderIDList.Count > 0) { hasOrderIDList = hasOrderIDList.Distinct().ToList(); hasOrderIDs = MyStringHelper.ListToStr(hasOrderIDList, "'", ","); } #endregion 检查是否有预约成功的订单 #endregion 预约订单修改状态 } else { //Tolog("普通类型"); #region 原订单修改状态 orderInfo.PaymentStatus = 1; orderInfo.Status = "待发货"; orderInfo.PayTime = DateTime.Now; Tolog("更改状态start"); //if (bllMall.GetWebsiteInfoModelFromDataBase().IsDistributionMall.Equals(1)) //{ orderInfo.GroupBuyStatus = "0"; orderInfo.DistributionStatus = 1; #region 拼团订单 if (orderInfo.OrderType == 2) { try { if (!string.IsNullOrEmpty(orderInfo.GroupBuyParentOrderId)) { var parentOrderInfo = bllMall.GetOrderInfo(orderInfo.GroupBuyParentOrderId); if (bllMall.GetCount <WXMallOrderInfo>(string.Format("PaymentStatus=1 And GroupBuyParentOrderId='{0}' Or OrderId='{0}'", parentOrderInfo.OrderID)) >= parentOrderInfo.PeopleCount) { bllMall.Update(new WXMallOrderInfo(), string.Format("Status='已取消'"), string.Format(" GroupBuyParentOrderId='{0}' And PaymentStatus=0", parentOrderInfo.OrderID)); parentOrderInfo.GroupBuyStatus = "1"; bllMall.Update(parentOrderInfo); } } } catch (Exception) { } } #endregion #region 活动订单 if (orderInfo.OrderType == 4) { ActivityDataInfo data = bllMall.Get <ActivityDataInfo>(string.Format(" OrderId='{0}'", orderInfo.OrderID)); if (data != null) { bllMall.Update(data, string.Format(" PaymentStatus=1"), string.Format(" OrderId='{0}'", orderInfo.OrderID)); } } #endregion bllMall.Update(orderInfo, string.Format("PaymentStatus=1,Status='待发货',PayTime=GETDATE(),DistributionStatus=1"), string.Format("ParentOrderId='{0}'", orderInfo.OrderID)); //} #endregion 原订单修改状态 //orderInfo.PayTranNo = tradeNo; } bool result = false; if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType)) { if (string.IsNullOrWhiteSpace(hasOrderIDs)) { hasOrderIDs = "'0'"; } result = bllMall.Update(new WXMallOrderInfo(), string.Format("PaymentStatus={0},PayTime=GetDate(),Status='{1}'", 1, "预约成功"), string.Format("OrderID='{0}' and WebsiteOwner='{4}' AND (select count(1) from [ZCJ_WXMallOrderInfo] where Status='{3}' and WebsiteOwner='{4}' and OrderID IN({1}))<{2}", orderInfo.OrderID, hasOrderIDs, maxCount, "预约成功", bllMall.WebsiteOwner) ) > 0; if (result) { // #region 交易成功加积分 //增加积分 (慧聚不需要) //if (orderInfo.TotalAmount > 0) //{ // ScoreConfig scoreConfig = bllScore.GetScoreConfig(); // int addScore = 0; // if (scoreConfig != null && scoreConfig.OrderAmount > 0 && scoreConfig.OrderScore > 0) // { // addScore = (int)(orderInfo.PayableAmount / (scoreConfig.OrderAmount / scoreConfig.OrderScore)); // } // if (addScore > 0) // { // if (bllUser.Update(new UserInfo(), // string.Format(" TotalScore+={0},HistoryTotalScore+={0}", addScore), // string.Format(" UserID='{0}'", orderInfo.OrderUserID)) > 0) // { // UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); // scoreRecord.AddTime = DateTime.Now; // scoreRecord.Score = addScore; // scoreRecord.ScoreType = "OrderSuccess"; // scoreRecord.UserID = orderInfo.OrderUserID; // scoreRecord.AddNote = "预约-交易成功获得积分"; // bllMall.Add(scoreRecord); // } // } //} // #endregion #region 修改其他预约订单为预约失败 返还积分 if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType) && !string.IsNullOrWhiteSpace(hasOrderIDs)) { int tempCount = 0; List <WXMallOrderInfo> tempList = bllMall.GetOrderList(0, 1, "", out tempCount, "预约成功", null, null, null, null, null, null, null, null, null, null, orderInfo.ArticleCategoryType, hasOrderIDs); tempCount = tempCount + 1; //加上当前订单的数量 if (tempCount >= maxCount) { tempList = bllMall.GetColOrderListInStatus("'待付款','待审核'", hasOrderIDs, "OrderID,OrderUserID,UseScore", bllMall.WebsiteOwner); if (tempList.Count > 0) { string stopOrderIds = MyStringHelper.ListToStr(tempList.Select(p => p.OrderID).ToList(), "'", ","); tempList = tempList.Where(p => p.UseScore > 0).ToList(); foreach (var item in tempList) { orderUserInfo.TotalScore += item.UseScore; if (bllUser.Update(new UserInfo(), string.Format(" TotalScore+={0}", item.UseScore), string.Format(" UserID='{0}'", item.OrderUserID)) > 0) { UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); scoreRecord.AddTime = DateTime.Now; scoreRecord.Score = item.UseScore; scoreRecord.TotalScore = orderUserInfo.TotalScore; scoreRecord.ScoreType = "OrderCancel"; scoreRecord.UserID = item.OrderUserID; scoreRecord.RelationID = item.OrderID; scoreRecord.AddNote = "预约-订单失败返还积分"; scoreRecord.WebSiteOwner = item.WebsiteOwner; bllMall.Add(scoreRecord); } } bllMall.Update(new WXMallOrderInfo(), string.Format("Status='{0}'", "预约失败"), string.Format("OrderID In ({0}) and WebsiteOwner='{1}'", stopOrderIds, bllMall.WebsiteOwner)); } } //Tolog("更改修改其他预约为预约失败"); } #endregion } } else { result = bllMall.Update(orderInfo); } if (result) { Open.HongWareSDK.Client hongWareClient = new Open.HongWareSDK.Client(orderInfo.WebsiteOwner); //Tolog("更改状态true"); #region Efast同步 //判读当前站点是否需要同步到驿氪和efast if (bllCommRelation.ExistRelation(BLLJIMP.Enums.CommRelationType.SyncEfast, bllCommRelation.WebsiteOwner, "")) { try { Tolog("开始同步efast"); string outOrderId = string.Empty, msg = string.Empty; var syncResult = bllEfast.CreateOrder(orderInfo.OrderID, out outOrderId, out msg); if (syncResult) { orderInfo.OutOrderId = outOrderId; bllMall.Update(orderInfo); } Tolog(string.Format("efast订单同步结果:{0},订单号:{1},提示信息:{2}", syncResult, outOrderId, msg)); } catch (Exception ex) { Tolog("efast订单同步异常:" + ex.Message); } } #endregion #region 驿氪同步 if (bllCommRelation.ExistRelation(BLLJIMP.Enums.CommRelationType.SyncYike, bllCommRelation.WebsiteOwner, "")) { try { Tolog("开始同步驿氪"); //同步成功订单到驿氪 //UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID); //if ((!string.IsNullOrEmpty(orderUserInfo.Ex1)) && (!string.IsNullOrEmpty(orderUserInfo.Ex2)) && (!string.IsNullOrEmpty(orderUserInfo.Phone))) //{ // client.BonusUpdate(orderUserInfo.Ex2, -(orderInfo.UseScore), "商城下单使用积分" + orderInfo.UseScore); //} var uploadOrderResult = yikeClient.OrderUpload(orderInfo); Tolog(string.Format("驿氪订单同步结果:{0}", Common.JSONHelper.ObjectToJson(uploadOrderResult))); } catch (Exception ex) { Tolog("驿氪订单同步异常:" + ex.Message); } } #endregion #region 付款加积分 try { bllUser.AddUserScoreDetail(orderInfo.OrderUserID, CommonPlatform.Helper.EnumStringHelper.ToString(ZentCloud.BLLJIMP.Enums.ScoreDefineType.OrderPay), bllMall.WebsiteOwner, null, null); } catch (Exception) { } #endregion #region 消息通知 if (!BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType)) { try { var productName = bllMall.GetOrderDetailsList(orderInfo.OrderID)[0].ProductName; string remark = ""; if (!string.IsNullOrEmpty(orderInfo.OrderMemo)) { remark = string.Format("客户留言:{0}", orderInfo.OrderMemo); } bllWeiXin.SendTemplateMessageToKefu("有新的订单", string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}\\n商品:{4}\\n{5}", orderInfo.OrderID, orderInfo.TotalAmount, orderInfo.Consignee, orderInfo.Phone, productName, remark)); if (orderInfo.OrderType != 4)//付费的活动不发消息 { if (orderInfo.WebsiteOwner != "jikuwifi") { string url = string.Format("http://{0}/customize/shop/?v=1.0&ngroute=/orderDetail/{1}#/orderDetail/{1}", context.Request.Url.Host, orderInfo.OrderID); bllWeiXin.SendTemplateMessageNotifyComm(orderUserInfo, "订单已成功支付,我们将尽快发货,请保持手机畅通等待物流送达!", string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}\\n商品:{4}...\\n查看详情", orderInfo.OrderID, orderInfo.TotalAmount, orderInfo.Consignee, orderInfo.Phone, productName), url); } } } catch (Exception) { } } else { try { bllWeiXin.SendTemplateMessageToKefu(orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元\\n预约人:{3}\\n预约人手机:{4}", orderInfo.OrderID, orderInfo.TotalAmount, tProductInfo.PName, orderUserInfo.TrueName, orderUserInfo.Phone)); bllWeiXin.SendTemplateMessageNotifyComm(orderUserInfo, orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元", orderInfo.OrderID, orderInfo.TotalAmount, tProductInfo.PName)); } catch (Exception) { } } #endregion WebsiteInfo websiteInfo = bllMall.Get <WebsiteInfo>(string.Format(" WebsiteOwner='{0}'", orderInfo.WebsiteOwner)); #region 分销相关 try { if (bllMenuPermission.CheckUserAndPmsKey(websiteInfo.WebsiteOwner, BLLPermission.Enums.PermissionSysKey.OnlineDistribution, websiteInfo.WebsiteOwner)) { if (string.IsNullOrWhiteSpace(orderUserInfo.DistributionOwner)) { if (websiteInfo.DistributionRelationBuildMallOrder == 1) { orderUserInfo.DistributionOwner = bllMall.WebsiteOwner; bllMall.Update(orderUserInfo); } } bllDis.AutoUpdateLevel(orderInfo); bllDis.TransfersEstimate(orderInfo); bllDis.SendMessageToUser(orderInfo); bllDis.UpdateDistributionSaleAmountUp(orderInfo); } } catch (Exception ex) { Tolog("设置分销员异常:" + ex.Message + " 用户id:" + orderUserInfo.UserID); } #endregion #region 宏巍通知 try { if (websiteInfo.IsUnionHongware == 1) { hongWareClient.OrderNotice(orderUserInfo.WXOpenId, orderInfo.OrderID); } } catch (Exception) { } #endregion bllCard.Give(orderInfo.TotalAmount, orderUserInfo); string v1ProductId = Common.ConfigHelper.GetConfigString("YGBV1ProductId"); string v2ProductId = Common.ConfigHelper.GetConfigString("YGBV2ProductId"); string v1CouponId = Common.ConfigHelper.GetConfigString("YGBV1CouponId"); string v2CouponId = Common.ConfigHelper.GetConfigString("YGBV2CouponId"); List <WXMallOrderDetailsInfo> orderDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID); foreach (var item in orderDetailList) { item.IsComplete = 1; bllMall.Update(item); #region 购买指定商品发送指定的优惠券 if (!string.IsNullOrEmpty(v1ProductId) && !string.IsNullOrEmpty(v1CouponId) && item.PID == v1ProductId) { bllCard.SendCardCouponsByCurrUserInfo(orderUserInfo, v1CouponId); } if (!string.IsNullOrEmpty(v2ProductId) && !string.IsNullOrEmpty(v2CouponId) && item.PID == v2ProductId) { bllCard.SendCardCouponsByCurrUserInfo(orderUserInfo, v2CouponId); } #endregion } //更新销量 bllMall.UpdateProductSaleCount(orderInfo); context.Response.StatusCode = 200; context.Response.Write(successStr); Tolog("支付成功" + orderInfo.OrderID); return; } else { Tolog("更改状态false"); context.Response.StatusCode = 500; context.Response.Write(failStr); return; } } } catch (Exception ex) { //error = "fail"; Tolog("京东支付异常:" + ex.ToString()); } context.Response.ContentType = "text/plain"; context.Response.StatusCode = 500; context.Response.Write(failStr); }
public void ProcessRequest(HttpContext context) { string userId = context.Request["user_id"]; string amountStr = context.Request["amount"]; string orderSn = context.Request["order_sn"]; if (string.IsNullOrEmpty(userId) && string.IsNullOrEmpty(orderSn)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "user_id,order_sn 不能同时为空"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if ((!string.IsNullOrEmpty(userId)) && (!string.IsNullOrEmpty(orderSn))) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "user_id,order_sn 不能同时传入"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(amountStr)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "amount 参数必传"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } decimal amount = 0; if (!decimal.TryParse(amountStr, out amount)) { resp.code = (int)APIErrCode.OperateFail; resp.msg = "amount 参数错误"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (amount <= 0) { resp.code = (int)APIErrCode.OperateFail; resp.msg = "amount 需大于0"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } UserInfo userInfo = new UserInfo(); WXMallOrderInfo orderInfo = null; if (string.IsNullOrEmpty(userId) && (!string.IsNullOrEmpty(orderSn)))//给指定订单号打款 { orderInfo = bllMall.GetOrderInfoByOutOrderId(orderSn); if (orderInfo == null) { resp.code = (int)APIErrCode.OperateFail; resp.msg = "订单号不存在"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (amount > orderInfo.TotalAmount) { resp.code = (int)APIErrCode.OperateFail; resp.msg = "amount 不能大于订单总金额" + orderInfo.TotalAmount + "元"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } userInfo = bllUser.GetUserInfo(orderInfo.OrderUserID); } else if ((!string.IsNullOrEmpty(userId)) && (string.IsNullOrEmpty(orderSn)))//给指定用户打款 { userInfo = bllUser.GetUserInfo(userId); } if (userInfo == null)//指定用户不存在 { resp.code = (int)APIErrCode.OperateFail; resp.msg = "指定的用户不存在"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(userInfo.WXOpenId)) { resp.code = (int)APIErrCode.OperateFail; resp.msg = "用户微信 OpenId不存在"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } ZentCloud.BLLJIMP.Model.PayConfig payConfig = bllPay.GetPayConfig(); if (payConfig == null) { resp.code = (int)APIErrCode.OperateFail; resp.msg = "未配置支付信息"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(payConfig.WXAppId) || string.IsNullOrEmpty(payConfig.WXMCH_ID) || string.IsNullOrEmpty(payConfig.WXPartnerKey)) { resp.code = (int)APIErrCode.OperateFail; resp.msg = "支付配置信息不完整"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } Log(string.Format("准备打款:订单号{0}金额{1}", orderInfo.OutOrderId, amountStr)); string msg = ""; string weiXinRefundId = "";//微信退款单号 string refundNumber = orderInfo.OutOrderId + System.Math.Round(bllMall.GetTimeStamp(DateTime.Now), 0).ToString(); bool isSuccess = bllPay.WeixinRefund(orderInfo.OrderID, refundNumber, orderInfo.TotalAmount, amount, payConfig.WXAppId, payConfig.WXMCH_ID, payConfig.WXPartnerKey, out msg, out weiXinRefundId); if ((!string.IsNullOrEmpty(msg)) && (msg.Contains("请使用可用余额退款"))) { isSuccess = bllPay.WeixinRefundYuEr(orderInfo.OrderID, refundNumber, orderInfo.TotalAmount, amount, payConfig.WXAppId, payConfig.WXMCH_ID, payConfig.WXPartnerKey, out msg, out weiXinRefundId); } if (isSuccess) { resp.status = true; resp.msg = "ok"; if (orderInfo != null) { if (orderInfo.Status == "待退押金中") { orderInfo.Ex10 = ""; orderInfo.Status = "交易成功"; } else { orderInfo.Status = "已取消"; } if (orderInfo.IsRefund == 1) { orderInfo.Status = "已取消"; orderInfo.IsRefund = 0; orderInfo.Ex11 = ""; } orderInfo.Ex8 = ""; orderInfo.Ex9 = ""; orderInfo.LastUpdateTime = DateTime.Now; orderInfo.Ex17 = weiXinRefundId; if (!bllMall.Update(orderInfo)) { var orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID); if (orderUserInfo != null) { string title = "您收到打款"; string content = string.Format("金额:{0}\\n备注:{1}", amount, orderInfo.Ex14); bllWeixin.SendTemplateMessageNotifyComm(orderUserInfo, title, content); } resp.msg = "更新订单状态失败"; Log(string.Format("更新订单状态失败:订单号{0}金额{1}", orderInfo.OutOrderId, amountStr)); } Log(string.Format("打款成功:订单号{0}金额{1}", orderInfo.OutOrderId, amountStr)); } } else { resp.code = (int)APIErrCode.OperateFail; resp.msg = msg; Log(string.Format("打款失败:订单号{0}金额{1}信息{2}", orderInfo.OutOrderId, amountStr, msg)); } context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); }
public void ProcessRequest(HttpContext context) { string orderSn = context.Request["order_sn"]; //订单号 string type = context.Request["type"]; //类型 1 退款 2退押金 string outSn = context.Request["out_sn"]; //外部交易号 string amountStr = context.Request["amount"]; //金额 string remark = context.Request["remark"]; //备注 //decimal amount = 0; string title = ""; string content = string.Format("订单号:{0}\\n备注:", orderSn); if (string.IsNullOrEmpty(orderSn)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "order_sn 参数必传"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(type)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "type 参数必传"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(outSn)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "out_sn 参数必传"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } //if (string.IsNullOrEmpty(amountStr)) //{ // resp.code = (int)APIErrCode.PrimaryKeyIncomplete; // resp.msg = "amount 参数必传"; // context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); // return; //} //if (string.IsNullOrEmpty(remark)) //{ // resp.code = (int)APIErrCode.PrimaryKeyIncomplete; // resp.msg = "remark 参数必传"; // context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); // return; //} if (!string.IsNullOrEmpty(remark)) { remark = HttpUtility.UrlDecode(remark); } //if (!decimal.TryParse(amountStr, out amount)) //{ // resp.code = (int)APIErrCode.OperateFail; // resp.msg = "amount 参数错误,请检查"; // context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); // return; //} //if (amount <= 0) //{ // resp.code = (int)APIErrCode.OperateFail; // resp.msg = "amount 参数不能小于等于0"; // context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); // return; //} var orderInfo = bllMall.GetOrderInfoByOutOrderId(orderSn); if (orderInfo == null) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "order_sn 不存在,请检查"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } orderInfo.OutTranNo = outSn; orderInfo.Ex14 = remark; //orderInfo.Ex15 = amountStr;// orderInfo.LastUpdateTime = DateTime.Now; orderInfo.Ex8 = "0"; orderInfo.Ex9 = ""; switch (type) { case "1": orderInfo.Ex12 = "1"; //可以退款 //title = "订单" + orderInfo.OrderID + "可以进行退款啦"; break; case "2": orderInfo.Ex13 = "1"; //可以退押金 orderInfo.Status = "待退押金中"; title = "可以退押金啦"; break; default: resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "不合法的 type 值"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (bllMall.Update(orderInfo)) { if (type == "2") { var orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID); if (orderUserInfo != null && !string.IsNullOrWhiteSpace(orderUserInfo.WXOpenId)) { string tbMsg = "可退押金的订单号 " + orderInfo.OrderID; //if (!string.IsNullOrWhiteSpace(amountStr)) //{ // tbMsg += "\\n可退金额:" + amountStr; //} string url = string.Empty; if (bllMall.WebsiteOwner == "jikuwifi") { url = string.Format("http://jikuwifi.comeoncloud.net/customize/jikuwifi/Index.aspx?v=1.0&ngroute=/orderDetail/{0}#/orderDetail/{0}", orderInfo.OrderID); } bllWeixin.SendTemplateMessageNotifyComm(orderUserInfo, title, tbMsg, url); } } // resp.msg = "ok"; resp.status = true; } else { resp.code = (int)APIErrCode.OperateFail; resp.msg = "操作失败"; } //using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"D:\jikudevlog.txt", true, System.Text.Encoding.GetEncoding("gb2312"))) //{ // sw.WriteLine(string.Format("orderSn{0}type{1}outSn{2}amountStr{3}remark{4}", orderSn, type, outSn, amountStr, remark)); // sw.WriteLine(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); //} context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); }
/// <summary> /// 接收活动转赠 /// </summary> /// <param name="context"></param> /// <returns></returns> private string ReceiveActivity(HttpContext context) { if (currentUserInfo==null) { resp.Msg = "请在微信中打开"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } string activityId = context.Request["ActivityId"];//活动ID string fromUserAutoId = context.Request["FromUserAutoId"];//赠送用户ID JuActivityInfo juActivityInfo = bllJuactivity.GetJuActivityByActivityID(activityId); //检查 if (juActivityInfo == null) { resp.Msg = "转赠活动不存在"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } UserInfo fromUserInfo = bllUser.GetUserInfoByAutoID(int.Parse(fromUserAutoId)); if (fromUserInfo == null) { resp.Msg = "转赠用户不存在"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } WXSignInInfo signInfo = bllActivity.Get<WXSignInInfo>(string.Format(" JuActivityID='{0}' And SignInUserID='{1}'", juActivityInfo.JuActivityID, fromUserInfo.UserID)); if (signInfo!=null) { resp.Msg = "不能接受此转赠"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } ActivityDataInfo dataInfo = bllActivity.Get<ActivityDataInfo>(string.Format(" ActivityID='{0}' And UserId='{1}' And IsDelete=0 And OrderId!='' And PaymentStatus=1", activityId, fromUserInfo.UserID)); if (dataInfo == null) { resp.Msg = " 不能接受此转赠"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } if (fromUserInfo.UserID==currentUserInfo.UserID) { resp.Msg = "不能接收自己的转赠"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } if (!string.IsNullOrEmpty(dataInfo.ToUserId)) { if (dataInfo.ToUserId == currentUserInfo.UserID) { resp.Msg = " 您已经接收过转赠"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } else { resp.Msg = " 此活动已经转赠过了"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } } ActivityDataInfo dataCurrentInfo = bllActivity.Get<ActivityDataInfo>(string.Format(" ActivityID='{0}' And UserId='{1}' And IsDelete=0", activityId,currentUserInfo.UserID)); if (dataCurrentInfo!=null) { resp.Msg = " 您已经报名过此活动,不能再接受转赠"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } WXMallOrderInfo fromUserOrderInfo = bllMall.GetOrderInfo(dataInfo.OrderId); ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction(); try { //订单 WXMallOrderInfo orderInfo = new WXMallOrderInfo();//订单表 orderInfo.Consignee = bllUser.GetUserDispalyName(currentUserInfo); orderInfo.InsertDate = DateTime.Now; orderInfo.OrderUserID = currentUserInfo.UserID; orderInfo.Phone = currentUserInfo.Phone; orderInfo.WebsiteOwner = bllMall.WebsiteOwner; orderInfo.OrderID = bllMall.GetGUID(BLLJIMP.TransacType.AddMallOrder); orderInfo.MyCouponCardId = fromUserOrderInfo.MyCouponCardId; orderInfo.UseScore = fromUserOrderInfo.UseScore; orderInfo.Status = "待发货"; orderInfo.ArticleCategoryType = "Mall"; orderInfo.OrderType = 4; orderInfo.Ex1 = juActivityInfo.ActivityName; orderInfo.Ex2 = orderInfo.Ex2; orderInfo.Ex3 = orderInfo.Ex3; orderInfo.OrderMemo = orderInfo.OrderMemo; orderInfo.TotalAmount = fromUserOrderInfo.TotalAmount; orderInfo.PaymentStatus = 1; orderInfo.PayTime = DateTime.Now; //订单 if (!bllMall.Add(orderInfo,tran)) { tran.Rollback(); resp.Msg = " 插入订单表失败"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } ActivityDataInfo newData = new ActivityDataInfo(); newData.ActivityID = dataInfo.ActivityID; newData.UserId = currentUserInfo.UserID; newData.WebsiteOwner = bllUser.WebsiteOwner; newData.OrderId =orderInfo.OrderID; newData.PaymentStatus = 1; newData.Name = bllUser.GetUserDispalyName(currentUserInfo); newData.Phone = currentUserInfo.Phone; newData.FromUserId = fromUserInfo.UserID; newData.InsertDate = DateTime.Now; newData.UID = bllJuactivity.Get<ActivityDataInfo>(string.Format(" ActivityID='{0}' Order By UID DESC",activityId)).UID + 1; if (!bllJuactivity.Add(newData, tran)) { tran.Rollback(); resp.Msg = " 插入报名表失败"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } dataInfo.ToUserId = currentUserInfo.UserID; if (!bllJuactivity.Update(dataInfo,tran)) { tran.Rollback(); resp.Msg = " 转赠失败"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } string showName = "活动"; var config = bllActivity.Get<BLLJIMP.Model.ActivityConfig>(string.Format(" WebsiteOwner='{0}'", bllActivity.WebsiteOwner)); if (config!=null) { if (!string.IsNullOrEmpty(config.ShowName)) { showName = config.ShowName; } } bllWeixin.SendTemplateMessageNotifyComm(fromUserInfo, string.Format("{0}转赠通知",showName), string.Format(" {0}已接收你转赠的{1}{2}", bllUser.GetUserDispalyName(currentUserInfo),showName,juActivityInfo.ActivityName)); bllWeixin.SendTemplateMessageNotifyComm(currentUserInfo, string.Format("{0}接收通知",showName), string.Format(" 您已接收了{0}转赠的{1}{2}", bllUser.GetUserDispalyName(fromUserInfo), showName,juActivityInfo.ActivityName)); tran.Commit(); resp.Status = 1; resp.Msg = "ok"; } catch (Exception ex) { resp.Msg = ex.Message; tran.Rollback(); } return ZentCloud.Common.JSONHelper.ObjectToJson(resp); }