/// <summary> /// 创建财务收款单 /// </summary> /// <param name="refundBalanceInfo"></param> private void CreateSOIncome(RefundBalanceInfo refundBalanceInfo) { SOIncomeInfo soIncomeInfo = new SOIncomeInfo() { OrderSysNo = refundBalanceInfo.SysNo.Value, OrderType = SOIncomeOrderType.RO_Balance, OrderAmt = refundBalanceInfo.CashAmt.Value * -1, IncomeAmt = (refundBalanceInfo.RefundPayType == RefundPayType.TransferPointRefund) ? 0 : refundBalanceInfo.CashAmt.Value * -1, GiftCardPayAmt = -refundBalanceInfo.GiftCardAmt.Value, PointPay = -refundBalanceInfo.PointAmt.Value, IncomeStyle = SOIncomeOrderStyle.RO_Balance, ReferenceID = "", Status = SOIncomeStatus.Origin, Note = "", CompanyCode = refundBalanceInfo.CompanyCode }; ExternalDomainBroker.CreateSOIncome(soIncomeInfo); if (refundBalanceInfo.RefundPayType == RefundPayType.TransferPointRefund) { int userSysNo = ExternalDomainBroker.GetUserSysNo(AppSettingManager.GetSetting("RMA", RMAConst.AutoRMAPhysicalUserName), AppSettingManager.GetSetting("RMA", RMAConst.AutoRMALoginUserName), AppSettingManager.GetSetting("RMA", RMAConst.AutoRMASourceDirectoryKey)); ExternalDomainBroker.AutoConfirmIncomeInfo(soIncomeInfo.SysNo.Value, refundBalanceInfo.SysNo.Value, userSysNo); } }
public ActionResult SendFindPasswordSMS(FormCollection form) { string cell = CookieHelper.GetCookie <String>("FindPasswordCustomerCellPhone"); if (!string.IsNullOrEmpty(cell)) { SMSInfo item = new SMSInfo(); //item.CustomerSysNo = int.Parse(CookieHelper.GetCookie<String>("FindPasswordCustomerSysNo")); item.CreateUserSysNo = int.Parse(CookieHelper.GetCookie <String>("FindPasswordCustomerSysNo")); item.CellNumber = cell; item.Status = SMSStatus.NoSend; item.Type = SMSType.FindPassword; item.Priority = 100; item.RetryCount = 0; string code = VerifyImage.CreateRandomNumber(); CookieHelper.SaveCookie <string>("FindPasswordSMSCode", code); item.SMSContent = string.Format(AppSettingManager.GetSetting("SMSTemplate", "AlertConfirmPhoneCode"), DateTime.Now.ToString("MM月dd日 HH:mm"), code); if (CommonFacade.InsertNewSMS(item)) { return(Json("s", JsonRequestBehavior.AllowGet)); } } return(Json("服务器忙,稍后重试", JsonRequestBehavior.AllowGet)); }
public void HandleEvent(PurchaseOrderWaitingInStockMessage eventMessage) { string getFromService = AppSettingManager.GetSetting("PO", "Po_WaitingInStock_SSB_FromService"); string getToService = AppSettingManager.GetSetting("PO", "Po_WaitingInStock_SSB_ToService"); string getArticleCategory = AppSettingManager.GetSetting("PO", "Po_WaitingInStock_SSB_ArticleCategory"); string getArticleType1 = AppSettingManager.GetSetting("PO", "Po_WaitingInStock_SSB_ArticleType1"); string getArticleType2 = AppSettingManager.GetSetting("PO", "Po_WaitingInStock_SSB_ArticleType2"); string getDBName = AppSettingManager.GetSetting("PO", "Po_WaitingInStock_SSB_DataBaseName"); string getVersion = AppSettingManager.GetSetting("PO", "Po_WaitingInStock_SSB_MessageHead_Version"); PurchaseOrderWaitingInStockSendMsg msg = new PurchaseOrderWaitingInStockSendMsg() { MessageHead = new PurchaseOrderWaitingInStockMessageHead() { MessageType = eventMessage.SendType, CompanyCode = eventMessage.CompanyCode.Trim(), Version = getVersion, ReferenceNumber = eventMessage.PONumber }, Body = new PurchaseOrderWaitingInStockMessageBody() { message = eventMessage } }; //发送SSB消息: msg.Body.message.CompanyCode = msg.Body.message.CompanyCode.Trim(); SSBSender.SendV3 <PurchaseOrderWaitingInStockSendMsg>(getFromService, getToService, getArticleCategory, getArticleType1, getArticleType2, msg, getDBName, true); }
public JsonResult ArticleInsert(ArticleVO articleVO) { articleVO.Content = HttpUtility.UrlDecode(articleVO.Content); int articleId = ArticleBasisService.Insert(articleVO); int agentId = 0; if (articleVO.Application == ArticleEnums.LegalComplianceApplication) { agentId = int.Parse(AppSettingManager.GetSetting("WorkWXConfig", "LegalComplianceApplicationAgentId")); } else if (articleVO.Application == ArticleEnums.ExpertManagement) { agentId = int.Parse(AppSettingManager.GetSetting("WorkWXConfig", "ExpertManagementAgentId")); } // 微信推送消息 new RestClient().Post(ConfigurationManager.AppSettings["WxMessageUrl"].ToString(), new { agentId = agentId, content = string.Format("新推文:{0}", articleVO.Title), partyIds = articleVO.ArticleDepartmentList != null && articleVO.ArticleDepartmentList.Count > 0 ? string.Join("|", articleVO.ArticleDepartmentList.Select(p => p.DepartmentId)) : "", userIds = articleVO.UserIds }, RequestFormat.Json); return(Json(new AjaxResult() { Success = true, Data = articleId })); }
/// <summary> /// 同步对账单 /// </summary> /// <param name="billType"> /// 交易类型 /// 1 交易对账 /// 2 实扣税费对账 /// 3 保证金对账 /// 4 外币账户对账 /// </param> /// <param name="date">日期,格式:yyyyMMdd</param> /// <returns></returns> public bool SyncTradeBill(string billType, string date) { //获取所有需要对账的关务对接相关信息 var list = ObjectFactory <SOIncomeProcessor> .Instance.QueryVendorCustomsInfo();; //循环 逐个对账 foreach (VendorCustomsInfo customsInfo in list) { Dictionary <string, string> reqParams = new Dictionary <string, string>(); //一级商户代码 reqParams["SRC_NCODE"] = customsInfo.CBTSRC_NCode; //对账日期 reqParams["DATE"] = date; //账单类别 reqParams["ACCOUNT_TYPE"] = billType; StringBuilder reqXml = new StringBuilder(); reqXml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><EasipayB2CRequest><ReqData>"); foreach (KeyValuePair <string, string> kvp in reqParams) { reqXml.AppendFormat("<{0}><![CDATA[{1}]]></{0}>", kvp.Key, kvp.Value); } reqXml.Append("</ReqData></EasipayB2CRequest>"); string resResult = HttpPostRequestReturnString(AppSettingManager.GetSetting("Invoice", "CheckUrl"), BuildPostReqData(reqXml.ToString(), customsInfo), true); string[] resResultArray = resResult.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (string item in resResultArray) { string[] itemArray = item.Split('|'); if (itemArray == null || itemArray.Length != 15) { ECCentral.Service.Utility.Logger.WriteLog(string.Format("同步对账单失败,本条记录:{0}", item), "同步对账单"); continue; } TransactionCheckBill bill = new TransactionCheckBill() { TransactionType = itemArray[0].Equals("P") ? CheckTransactionType.P : CheckTransactionType.R, SoSysNo = int.Parse(itemArray[1]), SerialNo = string.Format("{0}{1}", itemArray[0].Equals("P") ? "P" : "R", itemArray[2]), SubOrderTime = itemArray[3], ProcessingTime = itemArray[4], TotalAmount = decimal.Parse(itemArray[5]), ProductAmount = decimal.Parse(itemArray[6]), ForexCurrency = itemArray[7], ForexAmount = decimal.Parse(itemArray[8]), Tariff = decimal.Parse(itemArray[10]), FareAmount = decimal.Parse(itemArray[11]), FareCurrency = itemArray[12], SubtotalAmount = decimal.Parse(itemArray[13]), MerchantName = itemArray[14] }; if (!string.IsNullOrWhiteSpace(itemArray[9])) { bill.Exchange = decimal.Parse(itemArray[9]); } ObjectFactory <IInvoiceDA> .Instance.InsertTransactionCheckBill(bill); } } return(true); }
/// <summary> /// 验证身份 验证签名的有效性,(TODO:待优化,需要重构) /// </summary> /// <param name="encodeJwt">转码之后的jwt信息</param> /// <param name="validatePayLoad"></param> /// <returns></returns> public static bool ValidateToken(string encodeJwt, Func <Dictionary <string, object>, bool> validatePayLoad) { var jwtOptions = AppSettingManager.Get <ESoftorJwtOption>("ESoftor:Jwt"); var success = true; var jwtArr = encodeJwt.Split('.'); var header = Base64UrlEncoder.Decode(jwtArr[0]).FromJsonString <Dictionary <string, object> >(); var payLoad = Base64UrlEncoder.Decode(jwtArr[1]).FromJsonString <Dictionary <string, object> >(); var hs256 = new HMACSHA256(Encoding.ASCII.GetBytes(jwtOptions.Secret)); //首先验证签名是否正确(必须的) success = success && string.Equals(jwtArr[2], Base64UrlEncoder.Encode(hs256.ComputeHash(Encoding.UTF8.GetBytes(string.Concat(jwtArr[0], ".", jwtArr[1]))))); if (!success) { return(success);//签名不正确直接返回 } //其次验证是否在有效期内(也应该必须) var now = Convert.ToInt64(DateTime.UtcNow.ToJsGetTime()); success = success && (now >= long.Parse(payLoad["nbf"].ToString()) && now < long.Parse(payLoad["exp"].ToString())); //再其次 进行自定义的验证 success = success && validatePayLoad(payLoad); return(success); }
public void HandleEvent(PurchaseOrderCloseMessage eventMessage) { string getFromService = AppSettingManager.GetSetting("PO", "Po_Close_SSB_FromService"); string getToService = AppSettingManager.GetSetting("PO", "Po_Close_SSB_ToService"); string getArticleCategory = AppSettingManager.GetSetting("PO", "Po_Close_SSB_ArticleCategory"); string getArticleType1 = AppSettingManager.GetSetting("PO", "Po_Close_SSB_ArticleType1"); string getArticleType2 = AppSettingManager.GetSetting("PO", "Po_Close_SSB_ArticleType2"); string getDBName = AppSettingManager.GetSetting("PO", "Po_Close_SSB_DataBaseName"); PurchaseOrderCloseSendMsg msg = new PurchaseOrderCloseSendMsg() { MessageHead = new PurchaseOrderCloseMessageHead() { Version = AppSettingManager.GetSetting("PO", "Po_Close_SSB_MessageHead_Version"), MessageType = AppSettingManager.GetSetting("PO", "Po_Close_SSB_MessageHead_Type"), CompanyCode = eventMessage.CompanyCode.Trim(), ReferenceNumber = eventMessage.PONumber }, message = eventMessage }; //发送SSB消息: msg.message.CompanyCode = msg.message.CompanyCode.Trim(); SSBSender.SendV3 <PurchaseOrderCloseSendMsg>(getFromService, getToService, getArticleCategory, getArticleType1, getArticleType2, msg, getDBName, true); }
public ActionResult Index() { var routeValues = RouteData.Values; if (routeValues.Keys != null && routeValues.Keys.Count > 0) { if (routeValues.Keys.ToList <string>().Exists(f => f.ToLower() == "subdomain")) { string subdomain = routeValues["subdomain"].ToString(); if (string.IsNullOrWhiteSpace(subdomain)) { return(View()); } var forbiddenSD = AppSettingManager.GetSetting("Store", "ForbiddenSecondDomain").Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (forbiddenSD.ToList <string>().Exists(f => f.Trim().ToLower() == subdomain.Trim().ToLower())) { //该二级域名为平台专用,不可申请,所以将直接转到首页! return(View()); } StoreDomainPage storePage = StoreFacade.GetStoreIndexPageBySubDomain(subdomain.Trim()); if (storePage != null) { return(new StoreController().Index(storePage.SellerSysNo, storePage.HomePageSysNo, false)); } } } return(View()); }
public virtual GrossMarginMsg GetGrossMargin(CountdownInfo entity) { GrossMarginMsg msg = new GrossMarginMsg(); decimal GrossMargin = 0; decimal GrossMarginWithOutPointAndGift = 0; decimal GrossMarginRate = 0; decimal GrossMarginRateWithOutPointAndGift = 0; var giftSysNo = 0; var couponSysNo = 0; //获取蛋劵和赠品编号 if (entity.ProductSysNo.HasValue) { ObjectFactory <ICountdownQueryDA> .Instance.GetGiftAndCouponSysNo(entity.ProductSysNo.Value, out giftSysNo, out couponSysNo); if (giftSysNo != -1) { msg.GiftSysNo = giftSysNo; } if (couponSysNo != -1) { msg.CouponSysNo = couponSysNo; } } ObjectFactory <CountdownAppService> .Instance.GetGrossMargin(entity, out GrossMargin, out GrossMarginWithOutPointAndGift, out GrossMarginRate, out GrossMarginRateWithOutPointAndGift); msg.GrossMargin = GrossMargin; msg.GrossMarginWithOutPointAndGift = GrossMarginWithOutPointAndGift; msg.GrossMarginRate = GrossMarginRate; msg.GrossMarginRateWithOutPointAndGift = GrossMarginRateWithOutPointAndGift; msg.CountDownMargin = Convert.ToDecimal(AppSettingManager.GetSetting("MKT", "CountDownMargin")); msg.CountDownMarginRate = Convert.ToDecimal(AppSettingManager.GetSetting("MKT", "CountDownMarginRate")); return(msg); }
public string ResetPassword(string username) { var hostname = AppSettingManager.GetAppSettingsData(ConstantManager.AppSetting.LpVariables, ConstantManager.AppSetting.Hostname, string.Empty); Guid guid = Guid.NewGuid(); var user = _db.MstUsers.Where(x => x.Email.Equals(username) && x.IsActive).FirstOrDefault(); string msg = string.Empty; string link = $"{hostname}/auth/ValidatePasswordLink?txn={guid.ToString()}&user={username}"; string removeLink = $"{hostname}/auth/removeResetPasswordLink?txn={guid.ToString()}";; if (user != null) { user.IsPasswordReset = true; user.PasswordResetCode = guid.ToString(); user.ModifiedDate = DateTime.Now; _db.Entry(user).State = EntityState.Modified; if (_db.SaveChanges() > 0) { msg = "sent"; var temp = System.IO.File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "emailTemplate", "resetpassword.html")); var message = new Message(new string[] { "*****@*****.**", username }, "Password Reset", temp.Replace("##removereset##", removeLink).Replace("##resetlink##", link)); _emailSender.SendEmail(message); } else { msg = "notsent"; } } else { msg = "Invalid username."; } return(msg); }
public bool ValidateResetLink(string txn) { int resetlinkexpire = AppSettingManager.GetAppSettingsData <int>(ConstantManager.AppSetting.LpVariables, ConstantManager.AppSetting.ResetLinkExpireInHour, "24"); var user = _db.MstUsers.Where(x => x.PasswordResetCode.Equals(txn) && x.IsActive && x.IsPasswordReset == true && DateTime.Now <= x.ModifiedDate.Value.AddHours(resetlinkexpire)).FirstOrDefault(); return(user != null ? true : false); }
/// <summary> /// 构造请求协议 /// </summary> /// <param name="trackingNumberList"></param> /// <returns></returns> private string BuildQueryRequestXml(List <string> trackingNumberList) { string requestService = AppSettingManager.GetSetting("SO", "SFExpressRequestService"); string requestLang = AppSettingManager.GetSetting("SO", "SFExpressRequestLang"); string customerID = AppSettingManager.GetSetting("SO", "SFExpressCustomerID"); string checkWord = AppSettingManager.GetSetting("SO", "SFExpressCheckWord"); string trackingNumbers = ""; foreach (string str in trackingNumberList) { trackingNumbers += string.Format("{0},", str); } trackingNumbers = trackingNumbers.TrimEnd(','); string requestXml = @"<Request service='#RequestService#' lang='#RequestLang#'> <Head>#CustomerID#,#Checkword#</Head><Body> <RouteRequest tracking_type='1' method_type='1' tracking_number='#TrackingNumbers#'/> </Body></Request>"; requestXml = requestXml.Replace("#RequestService#", requestService); requestXml = requestXml.Replace("#RequestLang#", requestLang); requestXml = requestXml.Replace("#CustomerID#", customerID); requestXml = requestXml.Replace("#Checkword#", checkWord); requestXml = requestXml.Replace("#TrackingNumbers#", trackingNumbers); return(requestXml); }
/// <summary> /// 创建token对象 /// </summary> /// <param name="claims">身份信息集合</param> /// <param name="expiresMinutes">过期时间(分钟)</param> /// <returns>创建的token对象</returns> public static string CreateToken(Claim[] claims, int expiresMinutes = 20) { var jwtOptions = AppSettingManager.Get <ESoftorJwtOption>("ESoftor:Jwt") ?? new ESoftorJwtOption() { Audience = AppSettingManager.Get("ESoftor:Jwt:Audience"), Issuer = AppSettingManager.Get("ESoftor:Jwt:Issuer"), Secret = AppSettingManager.Get("ESoftor:Jwt:Secret") }; SecurityKey key = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(jwtOptions.Secret)); SigningCredentials credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature); DateTime now = DateTime.UtcNow; SecurityTokenDescriptor descriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Audience = jwtOptions.Audience, Issuer = jwtOptions.Issuer, SigningCredentials = credentials, NotBefore = now, IssuedAt = now, Expires = now.Add(TimeSpan.FromMinutes(expiresMinutes)) }; JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler(); SecurityToken token = tokenHandler.CreateToken(descriptor); return(tokenHandler.WriteToken(token)); }
/// <summary> /// 处理增值税业务中的证书 /// </summary> /// <param name="vat"></param> private void CertificateFileHandel(ValueAddedTaxInfo vat) { string fileIdentity = vat.CertificateFileName; string getConfigPath = AppSettingManager.GetSetting("Customer", "CertificateFilesPath"); if (!string.IsNullOrEmpty(fileIdentity)) { if (!fileIdentity.Contains(getConfigPath)) { string fileName = Path.GetFileName(Encoding.UTF8.GetString(Convert.FromBase64String(fileIdentity))); vat.CertificateFileName = getConfigPath + "\\" + fileName; if (!Path.IsPathRooted(getConfigPath)) { //是相对路径: getConfigPath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, getConfigPath); } string getDestinationPath = Path.Combine(getConfigPath, fileName); string getFolder = Path.GetDirectoryName(getDestinationPath); if (!Directory.Exists(getFolder)) { Directory.CreateDirectory(getFolder); } //将上传的文件从临时文件夹剪切到目标文件夹: FileUploadManager.MoveFile(fileIdentity, getDestinationPath); FileUploadManager.DeleteFile(fileIdentity); } } }
/// <summary> /// 更改用户密码 /// </summary> /// <param name="customerId">用户Id</param> /// <param name="oldPassword">旧密码</param> /// <param name="newPassword">新密码</param> /// <returns>更新结果</returns> public static bool UpdateCustomerPassword(string customerId, string oldPassword, string newPassword) { var result = CustomerDA.UpdateCustomerPassword(customerId, oldPassword, newPassword); if (result) { //密码修改成功后发送短信 var customer = CustomerFacade.GetCustomerByID(customerId); if (customer.IsPhoneValided == 1) { var sms = new SMSInfo(); sms.CellNumber = customer.CellPhone; sms.CompanyCode = ConstValue.CompanyCode; sms.CreateTime = DateTime.Now; sms.CreateUserSysNo = customer.SysNo; sms.LanguageCode = ConstValue.LanguageCode; sms.Priority = 1; sms.SMSContent = AppSettingManager.GetSetting("SMSTemplate", "AlertUpdatePassword"); sms.Status = SMSStatus.NoSend; sms.StoreCompanyCode = ConstValue.StoreCompanyCode; sms.Type = SMSType.AlertUpdatePassword; sms.RetryCount = 0; CommonDA.InsertNewSMS(sms); } } return(result); }
public async Task <IActionResult> CheckSignature() { var signature = HttpContext.Request.Params("signature"); var echostr = HttpContext.Request.Params("echostr"); var timestamp = HttpContext.Request.Params("timestamp"); var nonce = HttpContext.Request.Params("nonce"); string[] ArrTmp = { AppSettingManager.Get("ESoftor:Jwt:Secret"), timestamp, nonce }; Array.Sort(ArrTmp); //字典排序 string tmpStr = string.Join("", ArrTmp); //tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); tmpStr = Security.HashHelper.GetSha1(tmpStr); tmpStr = tmpStr.ToLower(); if (tmpStr == signature) { var json = new { appid = AppSettingManager.Get("Authentication:WeChat:AppId"),//AppKey timestamp, nonceStr = nonce, signature }; return(await Task.FromResult(Content(json.ToJsonString()))); } var json1 = new { appid = AppSettingManager.Get("Authentication:WeChat:AppId"),//AppKey timestamp, nonceStr = nonce, signature = tmpStr }; return(await Task.FromResult(Content(json1.ToJsonString()))); }
public RefundResult Refund(RefundEntity refundEntity) { RefundResult result = new RefundResult(); result.IsSync = true; NetPayInfo netpayInfo = ObjectFactory <NetPayProcessor> .Instance.GetValidBySOSysNo(refundEntity.SOSysNo); string partner = AppSettingManager.GetSetting("Invoice", "IPSPartner"); string IPSSecurityKey = AppSettingManager.GetSetting("Invoice", "IPSSecurityKey"); string sign = Sign(string.Format("{0}{1}{2}{3}{4}", partner, refundEntity.SOSysNo.ToString(), refundEntity.OrderDate.ToString("yyyyMMdd"), refundEntity.RefundAmt.ToString("f2"), IPSSecurityKey)); RefundMsg msg = new IPSPay.ServiceSoapClient().Refund(partner, sign, refundEntity.OrderDate.ToString("yyyyMMdd"), refundEntity.SOSysNo.ToString(), (double)refundEntity.RefundAmt, ""); if (msg.ErrCode == "0000") { if (msg.Sign == Sign(string.Format("{0}{1}{2}{3}{4}{5}{6}", partner, msg.TradeBillNo, msg.TradeTime, msg.RealRefundAmount.ToString("f2"), msg.CanRefundAmount.ToString("f2"), msg.RefundBillNo, IPSSecurityKey))) { result.Result = true; } else { result.Result = false; result.Message = "验签失败"; } } else { result.Result = false; result.Message = GetMessage(msg.ErrCode); //result.Message += refundEntity.SOSysNo.ToString() + " " + refundEntity.OrderDate.ToString("YYYYMMDD"); } return(result); }
public ActionResult SendLoginValidSMS(FormCollection form) { //step one :get customer cellphone from db string customerID = form["CustomerID"]; if (string.IsNullOrEmpty(customerID)) { return(Json("用户名未提供,发送验证码失败。", JsonRequestBehavior.AllowGet)); } string vendorUserCellphone = CommonService.GetVendorCellPhone(customerID); //step two :send sms if (string.IsNullOrEmpty(vendorUserCellphone)) { return(Json("账户未绑定手机或是未完成验证绑定,获取验证码失败。", JsonRequestBehavior.AllowGet)); } else { string code = ValidationCodeHelper.CreateValidateCode(5); Session["ValidateCode"] = code; CookieHelper.SaveCookie <string>("VerifyCode", code.Trim()); string SMSContent = string.Format(AppSettingManager.GetSetting("SMSTemplate", "CreateConfirmPhoneCode"), DateTime.Now.ToString("MM月dd日 HH:mm"), code); if (SMSService.SendSMS(vendorUserCellphone, SMSContent)) { return(Json("s", JsonRequestBehavior.AllowGet)); } } return(Json("服务器忙,稍后重试", JsonRequestBehavior.AllowGet)); }
public void Run(string emailTo, string emailCC, string companyCode) { m_emailTO = emailTo; m_emailCC = emailCC; m_companyCode = companyCode; DateTime startTime = new DateTime(); DateTime endTime = new DateTime(); endTime = DateTime.Now; //获取多少天前数据 int timeSpan = 0; if (!int.TryParse(AppSettingManager.GetSetting(SOConst.DomainName, "SOJob_InternalMemoReport_TimeSpan"), out timeSpan)) { timeSpan = 60; } startTime = endTime.AddDays(-timeSpan); var imemoList = ObjectFactory <ISODA> .Instance.GetInternalMemoReportList(startTime, DateTime.Now, m_companyCode); if (imemoList != null && imemoList.Count > 0) { List <InternalMemoReport> reports = ConvertReports(imemoList); SendMail(reports); } }
/// <summary> /// 构造请求的协议数据 /// </summary> /// <param name="reqXmlValue"></param> /// <returns></returns> private string BuildPostReqData(string reqXmlValue) { StringBuilder postData = new StringBuilder(); postData.AppendFormat("SENDER_CODE={0}", AppSettingManager.GetSetting("Invoice", "SENDER_CODE")); postData.AppendFormat("&TRX_CONTENT={0}", Base64Encode(reqXmlValue).Replace("+", "%2B")); postData.AppendFormat("&SIGNATURE={0}", SignData(reqXmlValue)); return(postData.ToString()); }
/// <summary> /// 订单网关查询 /// </summary> /// <param name="soSysNo">订单编号</param> /// <returns></returns> public TransactionQueryBill QueryBill(string soSysNo) { string queryUrl = AppSettingManager.GetSetting("Invoice", "QueryUrl"); int SOID = 0; int.TryParse(soSysNo, out SOID); VendorCustomsInfo customsInfo = ObjectFactory <ISOBizInteract> .Instance.LoadVendorCustomsInfo(SOID); Dictionary <string, string> reqParams = new Dictionary <string, string>(); reqParams["SRC_NCODE"] = customsInfo.CBTSRC_NCode; reqParams["TRX_TYPE"] = "00"; reqParams["BILL_NO"] = soSysNo; StringBuilder reqXml = new StringBuilder(); reqXml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><EasipayB2CRequest><ReqData>"); foreach (KeyValuePair <string, string> kvp in reqParams) { reqXml.AppendFormat("<{0}><![CDATA[{1}]]></{0}>", kvp.Key, kvp.Value); } reqXml.Append("</ReqData></EasipayB2CRequest>"); var resultXml = HttpPostRequestReturnXml(queryUrl, BuildPostReqData(reqXml.ToString(), customsInfo)); var result = new TransactionQueryBill(); var code = resultXml.SelectSingleNode("EasipayB2CResponse/ResData/RTN_CODE").InnerText; //请求结果 result.Message = resultXml.SelectSingleNode("EasipayB2CResponse/ResData/RTN_INFO").InnerText; //拒绝原因 if (code == "000000") { result.IsTrue = true; string trxState = resultXml.SelectSingleNode("EasipayB2CResponse/ResData/TRX_STATE").InnerText; result.BillNo = resultXml.SelectSingleNode("EasipayB2CResponse/ResData/BILL_NO").InnerText; result.PayAmount = resultXml.SelectSingleNode("EasipayB2CResponse/ResData/PAY_AMOUNT").InnerText; result.RdoTime = resultXml.SelectSingleNode("EasipayB2CResponse/ResData/RDO_TIME").InnerText; switch (trxState) { case "QS": result.TrxState = "等待支付"; break; case "S": result.TrxState = "支付成功"; break; case "F": result.TrxState = "支付失败"; break; } } return(result); }
private string SFExpressQuery(string requestXml) { string host = AppSettingManager.GetSetting("SO", "SFExpressQueryHost"); string action = AppSettingManager.GetSetting("SO", "SFExpressAction"); WebServiceProxy wsd = new WebServiceProxy(host, action); object[] paramArray = { requestXml }; return(wsd.ExecuteQuery(action, paramArray).ToString()); }
private string GetInvoicePrintStocks(string companyCode) { string cfg = AppSettingManager.GetSetting("Invoice", "InvoicePrintStocks-" + companyCode); if (!string.IsNullOrEmpty(cfg)) { return(cfg); } return(String.Empty); }
/// <summary> /// 获取一次最多的记录数 /// </summary> /// <returns></returns> private int GetTopCount() { int result = 0; if (!int.TryParse(AppSettingManager.GetSetting(SOConst.DomainName, "SOJob_FPCheck_TopCount"), out result)) { result = 2000; } return(result); }
public static bool VerifyReceive(this RMARequestInfo request, RMARequestInfo requestInDb) { if (request == null) { throw new ArgumentNullException("request"); } // verify required fields CommonCheck.VerifyNotNull("申请单ID", request.SysNo); CommonCheck.VerifyNotNull("仓库", request.ReceiveWarehouse); CommonCheck.VerifyNotNull("接收日期", request.CustomerSendTime); CommonCheck.VerifyNotNull("订单号", request.SOSysNo); //if (!(request.ShipViaCode.ToLower().Contains("ozzo") || // request.ShipViaCode.ToLower().Contains("奥硕"))) if (!request.ShipViaCode.ToLower().Contains(AppSettingManager.GetSetting("RMA", "PushShipTypeName"))) { CommonCheck.VerifyNotNull("邮包编号", request.TrackingNumber); } // verify request fields' max length request.VerifyFieldsLength(); if (requestInDb.Status.HasValue && requestInDb.Status.Value != RMARequestStatus.Origin) { string msg = ResouceManager.GetMessageString("RMA.Request", "CannotReceiveWithoutOriginRequest"); throw new BizException(msg); } if (request.Registers == null || request.Registers.Count < 1) { string msg = ResouceManager.GetMessageString("RMA.Request", "ObjectIsRequired"); msg = string.Format(msg, "订单列表"); throw new BizException(msg); } request.Registers.ForEach( reg => { if (!reg.BasicInfo.IsHaveInvoice.HasValue || !reg.BasicInfo.IsFullAccessory.HasValue || !reg.BasicInfo.IsFullPackage.HasValue) { string msg = ResouceManager.GetMessageString("RMA.Request", "LostRegisterReceiveInformations"); throw new BizException(msg); } } ); if (request.ShipViaCode == RMAConst.ShipVia_PostOffice) { if (request.PostageToPoint.HasValue && request.PostageToPoint.Value > 50) { string msg = ResouceManager.GetMessageString("RMA.Request", "PostageToPointShouldLessThan50"); throw new BizException(msg); } } return(true); }
/// <summary> /// 退款 /// 保证流水号唯一退款前缀添加R /// </summary> /// <param name="entity">退款实体信息</param> /// <returns>退款结果</returns> public RefundResult Refund(RefundEntity entity) { string refundUrl = AppSettingManager.GetSetting("Invoice", "TenPayRefundUrl"); Dictionary <string, string> reqParams = new Dictionary <string, string>(); reqParams["input_charset"] = "UTF-8"; reqParams["sign_key_index"] = "1"; reqParams["service_version"] = "1.1"; reqParams["partner"] = AppSettingManager.GetSetting("Invoice", "TenPayParnter"); reqParams["out_trade_no"] = entity.SOSysNo.ToString(); reqParams["out_refund_no"] = entity.RefundSysNo.ToString(); reqParams["total_fee"] = (entity.SOAmt * 100).ToString(); reqParams["refund_fee"] = (entity.RefundAmt * 100).ToString(); reqParams["op_user_id"] = AppSettingManager.GetSetting("Invoice", "TenPayParnter"); reqParams["op_user_passwd"] = GetMD5(AppSettingManager.GetSetting("Invoice", "TenPayParnterPwd")); reqParams["sign_type"] = "MD5"; //reqParams["notify_url"] = GetMD5(AppSettingManager.GetSetting("Invoice", "TenPayRefundNotifyUrl")); string reqData = ""; string[] allKeys = reqParams.Keys.ToArray(); Array.Sort(allKeys); foreach (var item in allKeys) { reqData += string.Format("{0}={1}&", item, reqParams[item]); } string sign = GetMD5(reqData + string.Format("key={0}", AppSettingManager.GetSetting("Invoice", "TenPaySecretKey"))); reqData += string.Format("sign={0}", sign); var resultXml = HttpRequestReturnXml(string.Format("{0}?{1}", refundUrl, reqData), "GET", ""); var result = new RefundResult(); var code = resultXml.SelectSingleNode("root/retcode").InnerText;//请求结果 if (code == "0") { result.Result = true; var soSysNo = entity.SOSysNo.ToString(); //商户订单号 result.ExternalKey = resultXml.SelectSingleNode("root/transaction_id").InnerText; //退款流水,支付宝国际无 var refundAmout = entity.RefundAmt.ToString("F2"); //退款总金额 } else { result.Message = resultXml.SelectSingleNode("root/retmsg").InnerText;//拒绝原因 } //记录日志 string resultNote = string.Format("用户[{0}]对订单号:{1} 调用了退款接口.调用结果;{2} 调用返回信息:{3},{4} PostUrl:{5} ", ServiceContext.Current.UserSysNo, entity.SOSysNo, code, result.Message, resultXml.ToXmlString(), refundUrl); ExternalDomainBroker.CreateOperationLog(resultNote, BizLogType.RMA_Refund_Refund, entity.RefundSysNo, entity.CompanyCode); return(result); }
/// <summary> /// 统计 /// </summary> /// <param name="sysNo"></param> /// <returns></returns> public DataTable GetGiftCardFabricationItemSum(int sysNo) { DataCommand dc = DataCommandManager.GetDataCommand("GiftCard_GetGiftCardFabricationItemSum"); dc.SetParameterValue("@GiftCardFabricationSysNo", sysNo); dc.SetParameterValue("@C3SysNo", AppSettingManager.GetSetting("MKT", "C3SysNoForGiftCardFabrication")); dc.SetParameterValue("@ManufacturerSysNo", AppSettingManager.GetSetting("MKT", "ManufacturerSysNoForGiftCardFabrication")); dc.SetParameterValue("@CompanyCode", "8601"); return(dc.ExecuteDataTable()); }
/// <summary> /// 订单网关查询 /// </summary> /// <param name="soSysNo">订单编号</param> /// <returns></returns> public TransactionQueryBill QueryBill(string soSysNo) { string queryUrl = AppSettingManager.GetSetting("Invoice", "TenPayQueryUrl"); Dictionary <string, string> reqParams = new Dictionary <string, string>(); reqParams["input_charset"] = "UTF-8"; reqParams["service_version"] = "1.0"; reqParams["sign_key_index"] = "1"; reqParams["partner"] = AppSettingManager.GetSetting("Invoice", "TenPayParnter"); reqParams["out_trade_no"] = soSysNo.ToString(); reqParams["sign_type"] = "MD5"; string reqData = ""; string[] allKeys = reqParams.Keys.ToArray(); Array.Sort(allKeys); foreach (var item in allKeys) { reqData += string.Format("{0}={1}&", item, reqParams[item]); } string sign = GetMD5(reqData + string.Format("key={0}", AppSettingManager.GetSetting("Invoice", "TenPaySecretKey"))); reqData += string.Format("sign={0}", sign); var resultXml = HttpRequestReturnXml(string.Format("{0}?{1}", queryUrl, reqData), "GET", ""); var result = new TransactionQueryBill(); var code = resultXml.SelectSingleNode("root/retcode").InnerText;//请求结果 if (code == "0") { result.IsTrue = true; string trxState = resultXml.SelectSingleNode("root/trade_state").InnerText; result.BillNo = resultXml.SelectSingleNode("root/out_trade_no").InnerText; result.PayAmount = resultXml.SelectSingleNode("root/total_fee").InnerText; result.RdoTime = resultXml.SelectSingleNode("root/time_end").InnerText; switch (trxState) { case "0": result.TrxState = "支付成功"; break; default: result.TrxState = "等待买家付款"; break; } } else { result.Message = "查询失败";// resultXml.SelectSingleNode("root/retmsg").InnerText;//失败原因 } return(result); }
public override IServiceCollection AddModule(IServiceCollection services) { services.AddScoped <IUserStore <User>, UserStore>(); services.AddScoped <IRoleStore <Role>, RoleStore>(); //services.AddScoped<SignInManager<User>>(); //services.AddScoped<UserManager<User>>(); //services.AddScoped<RoleManager<Role>>(); services.AddScoped <IIdentityContract, IdentityService>(); //注入当前用户,替换Thread.CurrentPrincipal的作用 services.AddTransient <IPrincipal>(provider => { IHttpContextAccessor accessor = provider.GetService <IHttpContextAccessor>(); return(accessor?.HttpContext?.User); }); Action <IdentityOptions> identityOptionsAction = options => { //登录 options.SignIn.RequireConfirmedEmail = true; //密码 options.Password.RequireNonAlphanumeric = false; options.Password.RequireUppercase = false; //用户 options.User.RequireUniqueEmail = true; //锁定 options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(15); }; IdentityBuilder builder = services.AddIdentity <User, Role>(identityOptionsAction); builder.AddDefaultTokenProviders(); //添加Authentication服务 services .AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(jwt => { string secret = AppSettingManager.Get("ESoftor:Jwt:Secret"); jwt.TokenValidationParameters = new TokenValidationParameters() { ValidIssuer = AppSettingManager.Get("ESoftor:Jwt:Issuer"), ValidAudience = AppSettingManager.Get("ESoftor:Jwt:Audience"), IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(secret)) }; jwt.SecurityTokenValidators.Clear(); //jwt.SecurityTokenValidators.Add(new OnlineUserJwtSecurityTokenHandler());//在线用户 }); return(services); }
public override string DbConnection() { if (_provider == null) { string connString = AppSettingManager.Get("ESoftor:DbContexts:Default:ConnectString"); return(connString); } var options = _provider.ESoftorOption(); return(options.ESoftorDbOption.ConnectString); }