protected void Page_Load(object sender, EventArgs e) { if (!this.Page.IsPostBack) { SiteSettings masterSettings = SettingsManager.GetMasterSettings(); if (masterSettings.EmailEnabled) { this.txtSelectedName.Value = masterSettings.EmailSender.ToLower(); string text = HiCryptographer.TryDecypt(masterSettings.EmailSettings); if (text.StartsWith("<xml>") || text.StartsWith("<xml>")) { ConfigData configData = new ConfigData(text); this.txtConfigData.Value = configData.SettingsXml; } } } }
public static SiteSettings DecrySettings(SiteSettings settings) { PropertyInfo[] properties = settings.GetType().GetProperties(); Type type = settings.GetType(); PropertyInfo[] array = properties; foreach (PropertyInfo propertyInfo in array) { MethodInfo getMethod = propertyInfo.GetGetMethod(); if (getMethod != (MethodInfo)null && getMethod.IsPublic && propertyInfo.CanWrite) { object[] customAttributes = propertyInfo.GetCustomAttributes(false); if (customAttributes != null && customAttributes.Length != 0) { for (int j = 0; j < customAttributes.Length; j++) { if (customAttributes[j].GetType() == typeof(GlobalCodeAttribute)) { GlobalCodeAttribute globalCodeAttribute = (GlobalCodeAttribute)customAttributes[j]; if (globalCodeAttribute != null && propertyInfo.PropertyType == typeof(string)) { if (globalCodeAttribute.IsEncryption) { propertyInfo.SetValue(settings, HiCryptographer.TryDecypt(getMethod.Invoke(settings, new object[0]).ToNullString()), null); } else if (globalCodeAttribute.IsHtmlCode) { propertyInfo.SetValue(settings, Globals.HtmlDecode(getMethod.Invoke(settings, new object[0]).ToNullString()), null); } else if (globalCodeAttribute.IsUrlEncode) { propertyInfo.SetValue(settings, Globals.UrlDecode(getMethod.Invoke(settings, new object[0]).ToNullString()), null); } } } } } else { propertyInfo.SetValue(settings, getMethod.Invoke(settings, new object[0]), null); } } } return(settings); }
private int GetAmount(SiteSettings settings) { int result = 0; if (!string.IsNullOrEmpty(settings.SMSSettings)) { string xml = HiCryptographer.TryDecypt(settings.SMSSettings); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.XmlResolver = null; xmlDocument.LoadXml(xml); string innerText = xmlDocument.SelectSingleNode("xml/Appkey").InnerText; string postData = "method=getAmount&Appkey=" + innerText; string postResult = Globals.GetPostResult("http://sms.huz.cn/getAmount.aspx", postData); int num = default(int); if (int.TryParse(postResult, out num)) { result = Convert.ToInt32(postResult); } } return(result); }
protected void Page_Load(object sender, EventArgs e) { if (!this.Page.IsPostBack) { SiteSettings masterSettings = SettingsManager.GetMasterSettings(); Globals.AppendLog(new Dictionary <string, string>(), "SMSSettings:" + masterSettings.ToString() + "," + masterSettings.SMSEnabled, "", "", "/log/SMSSettings.txt"); if (masterSettings.SMSEnabled) { string text = HiCryptographer.TryDecypt(masterSettings.SMSSettings); Globals.AppendLog(new Dictionary <string, string>(), "SMSSettings:" + text, "", "", "/log/SMSSettings.txt"); if (text.StartsWith("<xml>") || text.StartsWith("<xml>")) { ConfigData configData = new ConfigData(text); this.txtConfigData.Value = configData.SettingsXml; if (masterSettings != null) { this.lbNum.Text = this.GetAmount(masterSettings); } } } this.txtSelectedName.Value = "hishop.plugins.sms.ymsms"; } }
private void btnSendGoods_Click(object sender, EventArgs e) { int num = this.txtSendGoodType.Value.ToInt(0); if (this.grdOrderGoods.Items.Count <= 0) { this.ShowMsg("没有要进行发货的订单。", false); } else { int num2 = 0; for (int i = 0; i < this.grdOrderGoods.Items.Count; i++) { HiddenField hiddenField = (HiddenField)this.grdOrderGoods.Items[i].FindControl("txtDeliveryNo"); string text = hiddenField.Value.ToNullString(); if (num != 2 || !(text == "")) { HiddenField hiddenField2 = (HiddenField)this.grdOrderGoods.Items[i].FindControl("hidorderId"); string value = hiddenField2.Value; TextBox textBox = (TextBox)this.grdOrderGoods.Items[i].FindControl("txtShippOrderNumber"); ExpressDropDownList expressDropDownList = this.grdOrderGoods.Items[i].FindControl("expressList1") as ExpressDropDownList; OrderInfo orderInfo = OrderHelper.GetOrderInfo(value); if ((orderInfo.GroupBuyId <= 0 || orderInfo.GroupBuyStatus == GroupBuyStatus.Success) && ((orderInfo.OrderStatus == OrderStatus.WaitBuyerPay && orderInfo.Gateway == "hishop.plugins.payment.podrequest") || orderInfo.OrderStatus == OrderStatus.BuyerAlreadyPaid)) { ExpressCompanyInfo expressCompanyInfo = null; switch (num) { case 1: if (!string.IsNullOrEmpty(expressDropDownList.SelectedValue)) { expressCompanyInfo = ExpressHelper.FindNode(expressDropDownList.SelectedValue); } if (expressCompanyInfo != null) { orderInfo.ExpressCompanyName = expressCompanyInfo.Name; orderInfo.ExpressCompanyAbb = expressCompanyInfo.Kuaidi100Code; orderInfo.ShipOrderNumber = textBox.Text; } break; case 2: orderInfo.ExpressCompanyName = "同城物流配送"; orderInfo.ExpressCompanyAbb = ""; orderInfo.ShipOrderNumber = ""; orderInfo.DadaStatus = DadaStatus.WaitOrder; break; default: orderInfo.ExpressCompanyName = ""; orderInfo.ExpressCompanyAbb = ""; orderInfo.ShipOrderNumber = ""; break; } OrderStatus orderStatus = orderInfo.OrderStatus; if (OrderHelper.SendGoods(orderInfo)) { if (expressCompanyInfo != null && !string.IsNullOrEmpty(orderInfo.ExpressCompanyAbb) && orderInfo.ExpressCompanyAbb.ToUpper() == "HTKY") { ExpressHelper.GetDataByKuaidi100(orderInfo.ExpressCompanyAbb, orderInfo.ShipOrderNumber); } if (orderStatus == OrderStatus.WaitBuyerPay) { OrderHelper.ChangeStoreStockAndWriteLog(orderInfo); } if (orderInfo.Gateway.ToLower() == "hishop.plugins.payment.podrequest") { OrderHelper.SetOrderIsStoreCollect(orderInfo.OrderId); ProductStatisticsHelper.UpdateOrderSaleStatistics(orderInfo); TransactionAnalysisHelper.AnalysisOrderTranData(orderInfo); } if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && orderInfo.GatewayOrderId.Trim().Length > 0) { PaymentModeInfo paymentMode = SalesHelper.GetPaymentMode(orderInfo.Gateway); if (paymentMode != null) { string hIGW = paymentMode.Gateway.Replace(".", "_"); PaymentRequest paymentRequest = PaymentRequest.CreateInstance(paymentMode.Gateway, HiCryptographer.TryDecypt(paymentMode.Settings), orderInfo.OrderId, orderInfo.GetTotal(false), "订单发货", "订单号-" + orderInfo.OrderId, orderInfo.EmailAddress, orderInfo.OrderDate, Globals.FullPath(""), Globals.FullPath(base.GetRouteUrl("PaymentReturn_url", new { HIGW = hIGW })), Globals.FullPath(base.GetRouteUrl("PaymentNotify_url", new { HIGW = hIGW })), ""); paymentRequest.SendGoods(orderInfo.GatewayOrderId, orderInfo.RealModeName, orderInfo.ShipOrderNumber, "EXPRESS"); } } if (orderInfo.ExpressCompanyName == "同城物流配送" && !string.IsNullOrEmpty(text)) { SiteSettings masterSettings = SettingsManager.GetMasterSettings(); DadaHelper.addAfterQuery(masterSettings.DadaSourceID, text); } if (!string.IsNullOrEmpty(orderInfo.OuterOrderId) && expressCompanyInfo != null) { if (orderInfo.OuterOrderId.StartsWith("tb_")) { string text2 = orderInfo.OuterOrderId.Replace("tb_", ""); try { string requestUriString = $"http://order2.kuaidiangtong.com/UpdateShipping.ashx?tid={text2}&companycode={expressCompanyInfo.TaobaoCode}&outsid={orderInfo.ShipOrderNumber}&Host={HiContext.Current.SiteUrl}"; WebRequest webRequest = WebRequest.Create(requestUriString); webRequest.GetResponse(); } catch { } } else if (orderInfo.OuterOrderId.StartsWith("jd_")) { string text2 = orderInfo.OuterOrderId.Replace("jd_", ""); } } MemberInfo user = Users.GetUser(orderInfo.UserId); Messenger.OrderShipping(orderInfo, user); orderInfo.OnDeliver(); num2++; } } } } if (num2 == 0) { this.ShowMsg("批量发货失败,商品库存不足或者有商品正在退货,换货中的订单不能发货!", false); } else if (num2 > 0) { this.BindData(); this.ShowMsg($"批量发货成功!发货数量{num2}个,商品库存不足或者有商品正在退货,换货中的订单不能发货!", true); } } }
protected void Page_Load(object sender, EventArgs e) { this.parameters = new NameValueCollection { this.Page.Request.Form, this.Page.Request.QueryString }; try { this.Gateway = "Hishop.Plugins.Payment.ShengPayMobile.ShengPayMobileRequest"; this.Notify = PaymentNotify.CreateInstance(this.Gateway, this.parameters); this.OrderId = this.Notify.GetOrderId(); this.Order = ShoppingProcessor.GetOrderInfo(this.OrderId); if (this.Order == null) { Globals.AppendLog(this.parameters, "订单信息为空", this.OrderId, "", "ShengPay_Return1"); base.Response.Write("OK"); } else { this.Amount = this.Notify.GetOrderAmount(); if (this.Amount <= decimal.Zero) { this.Amount = this.Order.GetTotal(true); } this.hasNotify = !string.IsNullOrEmpty(this.Order.GatewayOrderId); if (this.Order.PreSaleId > 0 && this.Order.DepositGatewayOrderId.ToNullString() == this.Notify.GetGatewayOrderId()) { Globals.AppendLog(this.parameters, "预售订单已更新过状态", this.OrderId, "", "ShengPay_Return1"); base.Response.Write("OK"); } else { if (this.Order.PreSaleId > 0 && !this.Order.DepositDate.HasValue) { this.Order.DepositGatewayOrderId = this.Notify.GetGatewayOrderId(); } else { this.Order.GatewayOrderId = this.Notify.GetGatewayOrderId(); } PaymentModeInfo paymentMode = ShoppingProcessor.GetPaymentMode("Hishop.Plugins.Payment.ShengPayMobile.ShengPayMobileRequest"); if (paymentMode == null) { Globals.AppendLog(this.parameters, "未找到支付方式", this.OrderId, "", "ShengPay_Return1"); base.Response.Write("OK"); } else { this.Notify.Finished += this.Notify_Finished; this.Notify.NotifyVerifyFaild += this.Notify_NotifyVerifyFaild; this.Notify.Payment += this.Notify_Payment; this.Notify.VerifyNotify(30000, HiCryptographer.TryDecypt(paymentMode.Settings)); } } } } catch (Exception ex) { Globals.WriteExceptionLog_Page(ex, this.parameters, "ShengPayNotify"); } }
private void SendEmail(HttpContext context) { string parameter = base.GetParameter(context, "content", true); string parameter2 = base.GetParameter(context, "ids", true); if (string.IsNullOrWhiteSpace(parameter2)) { throw new HidistroAshxException("请先选择要删除的会员账号"); } if (string.IsNullOrEmpty(parameter)) { throw new HidistroAshxException("请先填写发送的内容信息"); } string emailSender = base.CurrentSiteSetting.EmailSender; if (string.IsNullOrEmpty(emailSender)) { throw new HidistroAshxException("请先选择发送方式"); } ConfigData configData = null; if (base.CurrentSiteSetting.EmailEnabled) { configData = new ConfigData(HiCryptographer.TryDecypt(base.CurrentSiteSetting.EmailSettings)); } if (configData == null) { throw new HidistroAshxException("请先选择发送方式并填写配置信息"); } if (!configData.IsValid) { string text = ""; foreach (string errorMsg in configData.ErrorMsgs) { text += Formatter.FormatErrorMessage(errorMsg); } throw new HidistroAshxException(text); } int[] array = (from d in parameter2.Split(',') where !string.IsNullOrWhiteSpace(d) select int.Parse(d)).ToArray(); parameter2 = string.Join(",", array); int num = array.Count(); string text2 = null; IEnumerable <MemberInfo> membersById = MemberHelper.GetMembersById(parameter2); foreach (MemberInfo item in membersById) { string email = item.Email; if (!string.IsNullOrEmpty(email) && Regex.IsMatch(email, "([a-zA-Z\\.0-9_-])+@([a-zA-Z0-9_-])+((\\.[a-zA-Z0-9_-]{2,4}){1,2})")) { text2 = text2 + email + ","; } } if (string.IsNullOrWhiteSpace(text2)) { throw new HidistroAshxException("请先选择要发送的会员或检测邮箱格式是否正确"); } text2 = text2.Substring(0, text2.Length - 1); string[] array2 = null; array2 = ((!text2.Contains(",")) ? new string[1] { text2 } : text2.Split(',')); MailMessage mailMessage = new MailMessage { IsBodyHtml = true, Priority = MailPriority.High, SubjectEncoding = Encoding.UTF8, BodyEncoding = Encoding.UTF8, Body = parameter, Subject = "来自" + base.CurrentSiteSetting.SiteName }; string[] array3 = array2; foreach (string addresses in array3) { mailMessage.To.Add(addresses); } EmailSender emailSender2 = EmailSender.CreateInstance(emailSender, configData.SettingsXml); try { if (emailSender2.Send(mailMessage, Encoding.GetEncoding(HiConfiguration.GetConfig().EmailEncoding))) { base.ReturnSuccessResult(context, "发送邮件成功", 0, true); goto end_IL_02fb; } throw new HidistroAshxException("发送邮件失败"); end_IL_02fb :; } catch (Exception) { throw new HidistroAshxException("发送邮件成功,但存在无效的邮箱账号"); } }
private void SendSMS(HttpContext context) { string parameter = base.GetParameter(context, "content", true); string parameter2 = base.GetParameter(context, "ids", true); string TemplateCode = ""; if (string.IsNullOrWhiteSpace(parameter2)) { throw new HidistroAshxException("请先选择要删除的会员账号"); } if (string.IsNullOrEmpty(parameter)) { throw new HidistroAshxException("请先填写发送的内容信息"); } string sMSSender = base.CurrentSiteSetting.SMSSender; if (string.IsNullOrEmpty(sMSSender)) { throw new HidistroAshxException("请先选择发送方式"); } ConfigData configData = null; if (base.CurrentSiteSetting.SMSEnabled) { configData = new ConfigData(HiCryptographer.TryDecypt(base.CurrentSiteSetting.SMSSettings)); } if (configData == null) { throw new HidistroAshxException("请先选择发送方式并填写配置信息"); } if (!configData.IsValid) { string text = ""; foreach (string errorMsg in configData.ErrorMsgs) { text += Formatter.FormatErrorMessage(errorMsg); } throw new HidistroAshxException(text); } int amount = this.GetAmount(base.CurrentSiteSetting); int[] array = (from d in parameter2.Split(',') where !string.IsNullOrWhiteSpace(d) select int.Parse(d)).ToArray(); parameter2 = string.Join(",", array); int num = array.Count(); int num2 = 0; string text2 = null; IEnumerable <MemberInfo> membersById = MemberHelper.GetMembersById(parameter2); foreach (MemberInfo item in membersById) { string cellPhone = item.CellPhone; if (!string.IsNullOrEmpty(cellPhone) && Regex.IsMatch(cellPhone, "^(13|14|15|18|17)\\d{9}$")) { text2 = text2 + cellPhone + ","; } } if (string.IsNullOrWhiteSpace(text2)) { throw new HidistroAshxException("请先选择要发送的会员或检测所选手机号格式是否正确"); } text2 = text2.Substring(0, text2.Length - 1); string[] array2 = null; array2 = ((!text2.Contains(",")) ? new string[1] { text2 } : text2.Split(',')); if (amount < array2.Length) { throw new HidistroAshxException("发送失败,您的剩余短信条数不足"); } SMSSender sMSSender2 = SMSSender.CreateInstance(sMSSender, configData.SettingsXml); string message = default(string); if (sMSSender2.Send(array2, TemplateCode, parameter, out message)) { base.ReturnSuccessResult(context, (amount - array2.Length).ToString(), 0, true); return; } throw new HidistroAshxException(message); }
private void btnSendGoods_Click(object sender, EventArgs e) { string text = this.txtDeliveryNo.Value.ToNullString(); OrderInfo orderInfo = OrderHelper.GetOrderInfo(this.orderId); int num = this.txtSendGoodType.Value.ToInt(0); if (orderInfo != null) { if (orderInfo.OrderStatus == OrderStatus.WaitBuyerPay && !OrderHelper.CheckStock(orderInfo)) { this.ShowMsg("订单有商品库存不足,请补充库存后发货!", false); } else if (orderInfo.GroupBuyId > 0 && orderInfo.GroupBuyStatus != GroupBuyStatus.Success) { this.ShowMsg("当前订单为团购订单,团购活动还未成功结束,所以不能发货", false); } else if (!orderInfo.CheckAction(OrderActions.SELLER_SEND_GOODS) || orderInfo.ItemStatus != 0) { this.ShowMsg("当前订单状态没有付款、不是等待发货的订单,或者订单中有商品正在进行退款操作,所以不能发货", false); } else if (num == 1 && (string.IsNullOrEmpty(this.txtShipOrderNumber.Text.Trim()) || this.txtShipOrderNumber.Text.Trim().Length > 20)) { this.ShowMsg("运单号码不能为空,在1至20个字符之间", false); } else if (num == 1 && string.IsNullOrEmpty(this.expressRadioButtonList.SelectedValue)) { this.ShowMsg("请选择物流公司", false); } else if (num == 2 && text == "") { this.ShowMsg("使用同城物流发货需要正确的物流编号", false); } else { string text2 = ""; ExpressCompanyInfo expressCompanyInfo = null; switch (num) { case 1: if (string.IsNullOrEmpty(this.expressRadioButtonList.SelectedValue)) { break; } expressCompanyInfo = ExpressHelper.FindNode(this.expressRadioButtonList.SelectedValue); if (expressCompanyInfo != null) { orderInfo.ExpressCompanyAbb = expressCompanyInfo.Kuaidi100Code; orderInfo.ExpressCompanyName = expressCompanyInfo.Name; } orderInfo.ShipOrderNumber = this.txtShipOrderNumber.Text; if (string.IsNullOrEmpty(orderInfo.OuterOrderId)) { break; } if (!orderInfo.OuterOrderId.StartsWith("jd_") || !string.IsNullOrWhiteSpace(expressCompanyInfo.JDCode)) { break; } this.ShowMsg("此订单是京东订单,所选物流公司不被京东支持", false); return; case 0: orderInfo.ExpressCompanyName = ""; orderInfo.ExpressCompanyAbb = ""; orderInfo.ShipOrderNumber = ""; break; default: orderInfo.ExpressCompanyName = "同城物流配送"; orderInfo.ExpressCompanyAbb = ""; orderInfo.ShipOrderNumber = ""; orderInfo.DadaStatus = DadaStatus.WaitOrder; break; } OrderStatus orderStatus = orderInfo.OrderStatus; if (OrderHelper.SendGoods(orderInfo)) { if (!string.IsNullOrEmpty(orderInfo.ExpressCompanyAbb) && orderInfo.ExpressCompanyAbb.ToUpper() == "HTKY") { ExpressHelper.GetDataByKuaidi100(orderInfo.ExpressCompanyAbb, orderInfo.ShipOrderNumber); } if (orderInfo.Gateway.ToNullString().ToLower() == "hishop.plugins.payment.podrequest") { ProductStatisticsHelper.UpdateOrderSaleStatistics(orderInfo); TransactionAnalysisHelper.AnalysisOrderTranData(orderInfo); } if (orderStatus == OrderStatus.WaitBuyerPay) { OrderHelper.ChangeStoreStockAndWriteLog(orderInfo); } if (orderInfo.Gateway == "hishop.plugins.payment.weixinrequest") { SiteSettings masterSettings = SettingsManager.GetMasterSettings(); PayClient payClient = new PayClient(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret, masterSettings.WeixinPartnerID, masterSettings.WeixinPartnerKey, masterSettings.WeixinPaySignKey, "", "", ""); DeliverInfo deliverInfo = new DeliverInfo(); deliverInfo.TransId = orderInfo.GatewayOrderId; deliverInfo.OutTradeNo = orderInfo.PayOrderId; deliverInfo.OpenId = Users.GetUser(orderInfo.UserId).MemberOpenIds.FirstOrDefault((MemberOpenIdInfo item) => item.OpenIdType.ToLower() == "hishop.plugins.openid.weixin").OpenId; payClient.DeliverNotify(deliverInfo); } else { if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && orderInfo.GatewayOrderId.Trim().Length > 0) { try { PaymentModeInfo paymentMode = SalesHelper.GetPaymentMode(orderInfo.Gateway); if (paymentMode != null && !string.IsNullOrEmpty(paymentMode.Settings)) { string hIGW = paymentMode.Gateway.Replace(".", "_"); PaymentRequest paymentRequest = PaymentRequest.CreateInstance(paymentMode.Gateway, HiCryptographer.TryDecypt(paymentMode.Settings), orderInfo.PayOrderId, orderInfo.GetTotal(false), "订单发货", "订单号-" + orderInfo.PayOrderId, orderInfo.EmailAddress, orderInfo.OrderDate, Globals.FullPath(""), Globals.FullPath(base.GetRouteUrl("PaymentReturn_url", new { HIGW = hIGW })), Globals.FullPath(base.GetRouteUrl("PaymentNotify_url", new { HIGW = hIGW })), ""); paymentRequest.SendGoods(orderInfo.GatewayOrderId, orderInfo.RealModeName, orderInfo.ShipOrderNumber, "EXPRESS"); } } catch (Exception) { } } if (!string.IsNullOrEmpty(orderInfo.OuterOrderId) && expressCompanyInfo != null) { if (orderInfo.OuterOrderId.StartsWith("tb_")) { string text3 = orderInfo.OuterOrderId.Replace("tb_", ""); try { string requestUriString = $"http://order2.kuaidiangtong.com/UpdateShipping.ashx?tid={text3}&companycode={expressCompanyInfo.TaobaoCode}&outsid={orderInfo.ShipOrderNumber}&Host={HiContext.Current.SiteUrl}"; WebRequest webRequest = WebRequest.Create(requestUriString); webRequest.GetResponse(); } catch { } } else if (orderInfo.OuterOrderId.StartsWith("jd_") && expressCompanyInfo != null) { string text3 = orderInfo.OuterOrderId.Replace("jd_", ""); try { SiteSettings masterSettings2 = SettingsManager.GetMasterSettings(); JDHelper.JDOrderOutStorage(masterSettings2.JDAppKey, masterSettings2.JDAppSecret, masterSettings2.JDAccessToken, expressCompanyInfo.JDCode, orderInfo.ShipOrderNumber, text3); } catch (Exception ex2) { text2 = $"\r\n同步京东发货失败,京东订单号:{text3},{ex2.Message}\r\n"; } } } } if (orderInfo.ExpressCompanyName == "同城物流配送" && !string.IsNullOrEmpty(text)) { SiteSettings masterSettings3 = SettingsManager.GetMasterSettings(); DadaHelper.addAfterQuery(masterSettings3.DadaSourceID, text); } int userId = orderInfo.UserId; MemberInfo user = Users.GetUser(orderInfo.UserId); Messenger.OrderShipping(orderInfo, user); orderInfo.OnDeliver(); if (orderInfo.Gateway.ToLower() == "hishop.plugins.payment.podrequest") { OrderHelper.SetOrderIsStoreCollect(orderInfo.OrderId); } if (string.IsNullOrWhiteSpace(text2)) { this.ShowMsg("发货成功", true); } else { this.ShowMsg($"发货成功{text2}", true); } } else { this.ShowMsg("发货失败,可能是商品库存不足,订单中有商品正在退货、换货状态", false); } } } }