protected void btnSubmit_Click(object sender, EventArgs e) { Validation(); if (lblError.Text == string.Empty) { string jsonFormatValue = "{" + lblQuestion1.Text + ":[" + "{" + lblOption1.Text + ":" + txtOption1.Text + "}" + "{" + lblOption2.Text + ":" + txtOption2.Text + "}" + "{" + lblOption3.Text + ":" + txtOption3.Text + "}" + "{" + lblOption4.Text + ":" + txtOption4.Text + "}]" + "}" + "{" + lblQuestion2.Text + "[" + "{" + lblOption5.Text + ":" + txtOption5.Text + "}" + "{" + lblOption6.Text + ":" + txtOption6.Text + "}" + "{" + lblOption7.Text + ":" + txtOption7.Text + "}" + "{" + lblOption8.Text + ":" + txtOption8.Text + "}" + "]}" + "}"; ChinaPromotionProvider.SubmitPCPromoSurvey(ProductsBase.ShoppingCart.DistributorID, "CN", DateUtils.GetCurrentLocalTime("CN"), convertDateTime(pInfo.FirstOrDefault(x => x.Code.Equals("PCPromoSurvey")).StartDate), convertDateTime(pInfo.FirstOrDefault(x => x.Code.Equals("PCPromoSurvey")).EndDate), "PCPromoSurvey", jsonFormatValue); Session["AttainedSurvey"] = true; Response.Redirect("Pricelist.aspx"); } }
protected void btnAddToCart_Click(object sender, EventArgs e) { var memberId = String.IsNullOrEmpty(ShoppingCart.SrPlacingForPcOriginalMemberId) ? ShoppingCart.DistributorID : ShoppingCart.SrPlacingForPcOriginalMemberId; if (ChinaPromotionProvider.IsEligibleForBadgePromotion(ShoppingCart, HLConfigManager.Platform, memberId)) { var cacheKey = string.Format("GetBadgePromoDetail_{0}", memberId); var results = HttpRuntime.Cache[cacheKey] as GetBadgePinResponse_V01; var selectItems = cblFreeGiftlist.Items.Cast <ListItem>().Where(x => x.Selected).ToList(); if (!ShoppingCart.CartItems.Exists(x => selectItems.Exists(i => i.Value == x.SKU))) { var itemsToAdd = new List <ShoppingCartItem_V01>(); foreach (var sitem in selectItems) { var findBadge = results.BadgeDetails.FirstOrDefault(s => s.BadgeCode == sitem.Value); if (findBadge != null) { itemsToAdd.Add(new ShoppingCartItem_V01 { Quantity = findBadge.Quantity, SKU = findBadge.BadgeCode, IsPromo = true, }); } } ShoppingCart.AddItemsToCart(itemsToAdd, true); ShoppingCartChanged(this, new ShoppingCartEventArgs(ShoppingCart)); } if (cblFreeGiftlist.Items.Count == 0) { divPromo.Visible = false; promotionPanel.Update(); } } }
public PromotionResponse_V01 GetEffectivePromotionList(string local, DateTime?dateTime = default(DateTime?)) { return(ChinaPromotionProvider.GetEffectivePromotionList(local, dateTime)); }
/// <summary> /// /// </summary> public override void Submit() { if (this._theInvoker != null) { this._theInvoker.Submit(); return; } var redirectUrl = _configHelper.GetConfigEntry("paymentGatewayUrl"); var orderNumber = _orderNumber; var returnURL = _configHelper.GetConfigEntry("paymentGatewayReturnUrlApproved"); var amount = _orderAmount <= 0 ? "0.00" : (Convert.ToDouble(_orderAmount.ToString("0.00")) * 100).ToString(); var returnUrl = string.Concat(RootUrl, returnURL); var paymentGatewayReturnBgUrl = _configHelper.GetConfigEntry("paymentGatewayReturnBgUrl"); var bgrUrl = string.Concat(RootUrl, paymentGatewayReturnBgUrl + "?rtnOrderNumber=" + orderNumber); var merchantId = _configHelper.GetConfigEntry("paymentGatewayMerchantdId"); var disId = _distributorId; var membershipUser = (MembershipUser <DistributorProfileModel>)Membership.GetUser(); var name = string.Empty; if (membershipUser != null) { name = membershipUser.Value.DistributorName(); disId = membershipUser.Value.Id; } var sessionInfoMyCart = SessionInfo.GetSessionInfo(disId, _locale); sessionInfoMyCart.OrderStatus = SubmitOrderStatus.Unknown; var myCart = sessionInfoMyCart.ShoppingCart ?? ShoppingCartProvider.GetShoppingCart(disId, _locale); var email = string.Empty; var payerName = string.Empty; if (myCart != null) { email = (!string.IsNullOrEmpty(myCart.EmailAddress)) ? myCart.EmailAddress : string.Empty; payerName = (myCart.DeliveryInfo != null && myCart.DeliveryInfo.Address != null) ? myCart.DeliveryInfo.Address.Recipient ?? string.Empty : string.Empty; } var payment = HttpContext.Current.Session[PaymentInformation] as CreditPayment_V01; if (payment != null && payment.TransactionType == "CC") { PostCNP(myCart, payment, sessionInfoMyCart, disId, name); return; } if (payment != null) { if (payment.TransactionType == "10") { bgrUrl = bgrUrl + "&BankId=" + payment.AuthorizationMerchantAccount; } if (payment.TransactionType == "12") { bgrUrl = bgrUrl + "&BankId=Fastmoney"; } } string orderTime = DateTime.Now.ToString(DateTimeFormat); var signMsgVal = ""; signMsgVal = AppendParam(signMsgVal, "inputCharset", "1"); signMsgVal = AppendParam(signMsgVal, "pageUrl", returnUrl); signMsgVal = AppendParam(signMsgVal, "bgUrl", bgrUrl); signMsgVal = AppendParam(signMsgVal, "version", "v2.0"); signMsgVal = AppendParam(signMsgVal, "language", "1"); signMsgVal = AppendParam(signMsgVal, "signType", "4"); //4 = PKI signate signMsgVal = AppendParam(signMsgVal, "merchantAcctId", merchantId); signMsgVal = AppendParam(signMsgVal, "payerName", payerName); //????? signMsgVal = AppendParam(signMsgVal, "payerContactType", "1"); signMsgVal = AppendParam(signMsgVal, "payerContact", email); signMsgVal = AppendParam(signMsgVal, "orderId", orderNumber); signMsgVal = AppendParam(signMsgVal, "orderAmount", amount); signMsgVal = AppendParam(signMsgVal, "orderTime", orderTime); signMsgVal = AppendParam(signMsgVal, "productName", ProductName); signMsgVal = AppendParam(signMsgVal, "productNum", "1"); signMsgVal = AppendParam(signMsgVal, "productId", ""); signMsgVal = AppendParam(signMsgVal, "productDesc", ProductDesc); signMsgVal = AppendParam(signMsgVal, "ext1", ""); signMsgVal = AppendParam(signMsgVal, "ext2", ""); signMsgVal = AppendParam(signMsgVal, "payType", payment != null ? payment.TransactionType : "10"); if (payment.TransactionType == "10") // eBanking { signMsgVal = AppendParam(signMsgVal, "bankId", payment != null ? payment.AuthorizationMerchantAccount : string.Empty); } signMsgVal = AppendParam(signMsgVal, "redoFlag", "0"); signMsgVal = AppendParam(signMsgVal, "pid", ""); var signMsg = GenerateHash(signMsgVal); var sb = new StringBuilder(); sb.Append("<html>"); sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='post'>", redirectUrl); sb.AppendFormat(BuildHtml("inputCharset", "1")); sb.AppendFormat(BuildHtml("pageUrl", returnUrl)); sb.AppendFormat(BuildHtml("bgUrl", bgrUrl)); sb.AppendFormat(BuildHtml("version", "v2.0")); sb.AppendFormat(BuildHtml("language", "1")); sb.AppendFormat(BuildHtml("signType", "4")); sb.AppendFormat(BuildHtml("merchantAcctId", merchantId)); sb.AppendFormat(BuildHtml("payerName", payerName)); sb.AppendFormat(BuildHtml("payerContactType", "1")); sb.AppendFormat(BuildHtml("payerContact", email)); sb.AppendFormat(BuildHtml("orderId", orderNumber)); sb.AppendFormat(BuildHtml("orderAmount", amount)); sb.AppendFormat(BuildHtml("orderTime", orderTime)); sb.AppendFormat(BuildHtml("productName", ProductName)); sb.AppendFormat(BuildHtml("productNum", "1")); sb.AppendFormat(BuildHtml("productId", "")); sb.AppendFormat(BuildHtml("productDesc", ProductDesc)); sb.AppendFormat(BuildHtml("ext1", "")); sb.AppendFormat(BuildHtml("ext2", "")); sb.AppendFormat(BuildHtml("payType", payment != null ? payment.TransactionType : "10")); if (payment.TransactionType == "10") // eBanking { sb.AppendFormat(BuildHtml("bankId", payment != null ? payment.AuthorizationMerchantAccount : string.Empty)); } sb.AppendFormat(BuildHtml("redoFlag", "0")); sb.AppendFormat(BuildHtml("pid", "")); sb.AppendFormat(BuildHtml("signMsg", signMsg)); sb.Append("</form>"); sb.Append("</body>"); sb.Append("</html>"); var response = sb.ToString(); LogMessageWithInfo(PaymentGatewayLogEntryType.Request, OrderNumber, _distributorId, _gatewayName, PaymentGatewayRecordStatusType.Unknown, response); bool isLockedeach = true; bool isLocked = true; string lockfailed = string.Empty; if (myCart != null && myCart.pcLearningPointOffSet > 0M && !(myCart.OrderCategory == ServiceProvider.CatalogSvc.OrderCategoryType.ETO)) { isLockedeach = OrderProvider.LockPCLearningPoint(_distributorId, orderNumber, new OrderMonth(myCart.CountryCode).OrderMonthShortString, Convert.ToInt32(Math.Truncate(myCart.pcLearningPointOffSet)), HLConfigManager.Platform); if (!isLockedeach) { lockfailed = "PC Learning Point"; isLocked = false; } } else if (myCart != null && myCart.pcLearningPointOffSet > 0M) { isLockedeach = OrderProvider.LockETOLearningPoint( myCart.CartItems.Select(s => s.SKU), _distributorId, orderNumber, new OrderMonth(myCart.CountryCode).OrderMonthShortString, Convert.ToInt32(Math.Truncate(myCart.pcLearningPointOffSet)), HLConfigManager.Platform); if (!isLockedeach) { lockfailed = " Learning Point"; isLocked = false; } } if (myCart.HastakenSrPromotion) { isLockedeach = ChinaPromotionProvider.LockSRPromotion(myCart, OrderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", SR Promotion"; isLocked = false; } } if (myCart.HastakenSrPromotionGrowing) { isLockedeach = ChinaPromotionProvider.LockSRQGrowingPromotion(myCart, OrderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", SR Query Growing"; isLocked = false; } } if (myCart.HastakenSrPromotionExcelnt) { isLockedeach = ChinaPromotionProvider.LockSRQExcellentPromotion(myCart, OrderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", SR Query Excellent"; isLocked = false; } } if (myCart.HastakenBadgePromotion) { isLockedeach = ChinaPromotionProvider.LockBadgePromotion(myCart, OrderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", Badge promo"; isLocked = false; } } if (myCart.HastakenNewSrpromotion) { isLockedeach = ChinaPromotionProvider.LockNewSRPromotion(myCart, OrderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", NewSrPromotion"; isLocked = false; } } if (myCart.HasBrochurePromotion) { isLockedeach = ChinaPromotionProvider.LockBrochurePromotion(myCart, OrderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", Brochure Promotion"; isLocked = false; } } if (isLocked) { HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); } else { LogMessageWithInfo(PaymentGatewayLogEntryType.Response, OrderNumber, _distributorId, _gatewayName, PaymentGatewayRecordStatusType.Declined, lockfailed.TrimStart(',') + " locking fails."); } }
/// <summary> /// The get all input. /// </summary> /// <returns> /// </returns> /// private List <ShoppingCartItem_V01> getAllInput(List <string> friendlyMessages) { Dictionary <string, SKU_V01> allSKUs = CatalogProvider.GetAllSKU(Locale, base.CurrentWarehouse); SKU_V01 skuV01 = null; friendlyMessages.Clear(); errSKU.Clear(); var products = new List <ShoppingCartItem_V01>(); setError setErrorDelegate = delegate(SkuQty sku, string error, List <string> errors) { sku.Image.Visible = true; sku.HasError = true; if (!errors.Contains(error)) { errors.Add(error); } }; bool bNoItemSelected = true; for (int i = 1; i < NUMITEMS + 1; i++) { string controlID = "SKUBox" + i; var ctrlSKU = tblSKU.FindControl(controlID) as TextBox; var ctrlQty = tblSKU.FindControl("QuantityBox" + i) as TextBox; var ctrlError = tblSKU.FindControl("imgError" + i) as Image; string strSKU = ctrlSKU.Text.Trim(); string strQty = ctrlQty.Text; int qty; int.TryParse(strQty, out qty); if (!string.IsNullOrEmpty(strSKU) && qty != 0) { strSKU = strSKU.ToUpper(); // If the str has a product. strSKU = strSKU.Split(new char[] { ' ' })[0]; AllSKUS.TryGetValue(strSKU, out skuV01); if (skuV01 == null) { // if not valid setup error setErrorDelegate(new SkuQty(controlID, strSKU, qty, ctrlError, true, true), string.Format((GetLocalResourceObject("NoSKUFound") as string), strSKU), errSKU); } else { if (CheckMaxQuantity(ShoppingCart.CartItems, qty, skuV01, errSKU)) { if (skuList.Any(s => s.SKU == strSKU)) { var skuQty = new SkuQty(controlID, strSKU, qty, ctrlError, true, true); skuList.Add(skuQty); setErrorDelegate(skuQty, string.Format((GetLocalResourceObject("DuplicateSKU") as string), strSKU), errSKU); SkuQty skuToFind = skuList.Find(s => s.SKU == strSKU); if (skuToFind != null) { // this is to prevent dupe one to NOT be added to cart skuToFind.HasError = true; skuToFind.Image.Visible = true; } } else { skuList.Add(new SkuQty(controlID, strSKU, qty, ctrlError, false, false)); } } else { ctrlError.CssClass = ctrlError.CssClass.Replace("hide", string.Empty); } } } else if (!string.IsNullOrEmpty(strSKU) && qty <= 0) { setErrorDelegate(new SkuQty(controlID, strSKU, qty, ctrlError, true, false), String.Format(PlatformResources.GetGlobalResourceString("ErrorMessage", "QuantityIncorrect"), strSKU), errSKU); } else { if (strSKU.Length + strQty.Length != 0) { setErrorDelegate(new SkuQty(controlID, strSKU, qty, ctrlError, true, false), GetLocalResourceObject("SKUOrQtyMissing") as string, errSKU); } } if (!string.IsNullOrEmpty(strSKU) || !string.IsNullOrEmpty(strQty)) { bNoItemSelected = false; } } if (bNoItemSelected) { errSKU.Add(PlatformResources.GetGlobalResourceString("ErrorMessage", "NoItemsSelected")); } else { try { foreach (SkuQty s in skuList) { // do not need to check at this point if (APFDueProvider.IsAPFSku(s.SKU)) { setErrorDelegate(s, string.Format(PlatformResources.GetGlobalResourceString("ErrorMessage", "SKUNotAvailable"), s.SKU), errSKU); continue; } AllSKUS.TryGetValue(s.SKU, out skuV01); if (skuV01 != null) { HLRulesManager.Manager.ProcessCatalogItemsForInventory(Locale, this.ShoppingCart, new List <SKU_V01> { skuV01 }); CatalogProvider.GetProductAvailability(skuV01, CurrentWarehouse); int availQty; // check isBlocked first if (IsBlocked(skuV01)) { setErrorDelegate(s, string.Format(PlatformResources.GetGlobalResourceString("ErrorMessage", "SKUNotAvailable"), s.SKU), errSKU); } else if (!skuV01.IsPurchasable) { setErrorDelegate(s, string.Format(GetLocalResourceObject("SKUCantBePurchased") as string, s.SKU), errSKU); } else if (skuV01.ProductAvailability == ProductAvailabilityType.Unavailable) { setErrorDelegate(s, string.Format(PlatformResources.GetGlobalResourceString("ErrorMessage", "SKUNotAvailable"), s.SKU), errSKU); } else if (HLConfigManager.Configurations.DOConfiguration.IsChina && ChinaPromotionProvider.GetPCPromoSkus(skuV01.SKU)) { setErrorDelegate(s, string.Format(GetLocalResourceObject("SKUCantBePurchased") as string, s.SKU), errSKU); } else { int backorderCoverage = CheckBackorderCoverage(s.Qty, skuV01, friendlyMessages); if (backorderCoverage == 0) { // out of stock if ((availQty = ShoppingCartProvider.CheckInventory(skuV01.CatalogItem, GetAllQuantities(ShoppingCart.CartItems, s.Qty, s.SKU), CurrentWarehouse)) == 0) { setErrorDelegate(s, string.Format(MyHL_ErrorMessage.OutOfInventory, s.SKU), errSKU); } else if (availQty < GetAllQuantities(ShoppingCart.CartItems, s.Qty, s.SKU)) { setErrorDelegate(s, string.Format(PlatformResources.GetGlobalResourceString("ErrorMessage", "LessInventory"), s.SKU, availQty), errSKU); HLRulesManager.Manager.PerformBackorderRules(ShoppingCart, skuV01.CatalogItem); IEnumerable <string> ruleResultMessages = from r in ShoppingCart.RuleResults where r.Result == RulesResult.Failure && r.RuleName == "Back Order" select r.Messages[0]; if (null != ruleResultMessages && ruleResultMessages.Count() > 0) { errSKU.Add(ruleResultMessages.First()); ShoppingCart.RuleResults.Clear(); } } } } } } //if (errSKU.Count == 0) { products.AddRange((from c in skuList where c.HasError == false select new ShoppingCartItem_V01(0, c.SKU, c.Qty, DateTime.Now)).ToList()); } } catch (Exception ex) { LoggerHelper.Error(string.Format("getAllInput error:" + ex)); } } return(products); }
public static bool PostCNPForMobile(MyHLShoppingCart shoppingcart, CreditPayment_V01 payment, string disId, string name, decimal amoun, string orderNumber, string distributorId, string phone) { if (shoppingcart == null || payment == null) { return(false); } ConfigHelper configHelper = new ConfigHelper("CN_99BillPaymentGateway"); var tr3Url = configHelper.GetConfigEntry("paymentGatewayReturnUrlApproved"); var merchantId = configHelper.GetConfigEntry("CNPTerminalId"); var terminalId = configHelper.GetConfigEntry("terminalId"); try { var amount = amoun <= 0 ? "0.00" : amoun.ToString("0.00"); var tins = DistributorOrderingProfileProvider.GetTinList(disId, true); var tin = tins.Find(t => t.ID == "CNID"); var sbXml = new StringBuilder(); sbXml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><MasMessage xmlns=\"http://www.99bill.com/mas_cnp_merchant_interface\">"); sbXml.Append("<version>1.0</version><TxnMsgContent><txnType>PUR</txnType><interactiveStatus>TR1</interactiveStatus>"); sbXml.AppendFormat("<cardNo>{0}</cardNo>", payment.Card.AccountNumber); sbXml.AppendFormat("<expiredDate>{0}</expiredDate>", payment.Card.Expiration.ToString("MM") + payment.Card.Expiration.ToString("yy")); sbXml.AppendFormat("<cvv2>{0}</cvv2>", payment.Card.CVV); sbXml.AppendFormat("<amount>{0}</amount>", amount); sbXml.AppendFormat("<merchantId>{0}</merchantId>", merchantId.Trim()); sbXml.AppendFormat("<terminalId>{0}</terminalId>", terminalId.Trim()); sbXml.AppendFormat("<cardHolderName>{0}</cardHolderName>", name); sbXml.AppendFormat("<cardHolderId>{0}</cardHolderId>", tin == null ? string.Empty : tin.IDType.Key.Trim()); sbXml.Append("<idType>0</idType>"); sbXml.AppendFormat("<entryTime>{0}</entryTime>", DateTime.Now.ToString("yyyyMMddHHmmss")); sbXml.AppendFormat("<externalRefNumber>{0}</externalRefNumber>", orderNumber); sbXml.AppendFormat("<extMap><extDate><key>phone</key><value>{0}</value></extDate></extMap>", phone); sbXml.AppendFormat("<tr3Url>{0}</tr3Url>", tr3Url.Trim()); sbXml.AppendFormat("<bankId>{0}</bankId>", payment.AuthorizationMerchantAccount); sbXml.AppendFormat("</TxnMsgContent></MasMessage>"); var encyptedCardNum = CryptographicProvider.Encrypt(payment.Card.AccountNumber); var encryptedCvv = CryptographicProvider.Encrypt(payment.Card.CVV); var decyptedCardNum = CryptographicProvider.Decrypt(encyptedCardNum); var decryptedCvv = CryptographicProvider.Decrypt(encryptedCvv); var logData = sbXml.ToString() .Replace(payment.Card.AccountNumber, encyptedCardNum) .Replace(payment.Card.CVV, encryptedCvv); LogMessageWithInfo(PaymentGatewayLogEntryType.Request, orderNumber, orderNumber, orderNumber, PaymentGatewayRecordStatusType.Unknown, logData); bool isLockedeach = true; bool isLocked = true; string lockfailed = string.Empty; if (shoppingcart.pcLearningPointOffSet > 0M && !(shoppingcart.OrderCategory == ServiceProvider.CatalogSvc.OrderCategoryType.ETO)) { isLockedeach = OrderProvider.LockPCLearningPoint(distributorId, orderNumber, new OrderMonth(shoppingcart.CountryCode).OrderMonthShortString, Convert.ToInt32(Math.Truncate(shoppingcart.pcLearningPointOffSet)), HLConfigManager.Platform); if (!isLockedeach) { lockfailed = "PC Learning Point"; isLocked = false; } } else if (shoppingcart.pcLearningPointOffSet > 0M) { isLockedeach = OrderProvider.LockETOLearningPoint( shoppingcart.CartItems.Select(s => s.SKU), distributorId, orderNumber, new OrderMonth(shoppingcart.CountryCode).OrderMonthShortString, Convert.ToInt32(Math.Truncate(shoppingcart.pcLearningPointOffSet)), HLConfigManager.Platform); if (!isLockedeach) { lockfailed = "ETO Learning Point"; isLocked = false; } } if (shoppingcart.HastakenSrPromotion) { isLockedeach = ChinaPromotionProvider.LockSRPromotion(shoppingcart, orderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", SR Promotion"; isLocked = false; } } if (shoppingcart.HastakenSrPromotionGrowing) { isLockedeach = ChinaPromotionProvider.LockSRQGrowingPromotion(shoppingcart, orderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", SR Query Growing"; isLocked = false; } } if (shoppingcart.HastakenSrPromotionExcelnt) { isLockedeach = ChinaPromotionProvider.LockSRQExcellentPromotion(shoppingcart, orderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", SR Query Excellent"; isLocked = false; } } if (shoppingcart.HastakenBadgePromotion) { isLockedeach = ChinaPromotionProvider.LockBadgePromotion(shoppingcart, orderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", Badge promo"; isLocked = false; } } if (shoppingcart.HastakenNewSrpromotion) { isLockedeach = ChinaPromotionProvider.LockNewSRPromotion(shoppingcart, orderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", NewSrPromotion"; isLocked = false; } } if (shoppingcart.HasBrochurePromotion) { isLockedeach = ChinaPromotionProvider.LockBrochurePromotion(shoppingcart, orderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", Brochure Promotion"; isLocked = false; } } if (isLocked) { var proxy = ServiceClientProvider.GetChinaOrderServiceProxy(); var request = new ServiceProvider.OrderChinaSvc.GetCNPPaymentServiceRequest_V01() { Data = sbXml.ToString().Replace(payment.Card.AccountNumber, payment.Card.AccountNumber) }; var response = proxy.GetCnpPaymentServiceDetail(new ServiceProvider.OrderChinaSvc.GetCnpPaymentServiceDetailRequest(request)).GetCnpPaymentServiceDetailResult as ServiceProvider.OrderChinaSvc.GetCNPPaymentServiceResponse_V01; if (null != response) { if (response.Status == ServiceProvider.OrderChinaSvc.ServiceResponseStatusType.Success && response.Response.Length > 0) { var msgReturn = response.Response; if (msgReturn.IndexOf("xmlns=\"http://www.99bill.com/mas_cnp_merchant_interface\"") > 1) { msgReturn = msgReturn.Replace(" xmlns=\"http://www.99bill.com/mas_cnp_merchant_interface\"", ""); } var xmlDoc = new XmlDocument(); var encodedString = Encoding.UTF8.GetBytes(msgReturn); var ms = new MemoryStream(encodedString); ms.Flush(); ms.Position = 0; // Build the XmlDocument from the MemorySteam of UTF-8 encoded bytes xmlDoc.Load(ms); var list = xmlDoc.SelectNodes("//TxnMsgContent"); var externalRefNumberback = string.Empty; var refNumberback = string.Empty; var gatewayAmount = string.Empty; var approved = false; if (list != null && list.Count == 0) { var selectSingleNode = xmlDoc.SelectSingleNode("MasMessage/ErrorMsgContent/errorMessage"); if (selectSingleNode != null) { var errorMessage = selectSingleNode.InnerText; LogMessageWithInfo(PaymentGatewayLogEntryType.Response, orderNumber, distributorId, "CN_99BillPaymentGatewayInvoker", PaymentGatewayRecordStatusType.Declined, msgReturn + errorMessage); return(false); } } else { var authorizationCodeback = ""; var selectSingleNode = xmlDoc.SelectSingleNode("MasMessage/TxnMsgContent/responseCode"); if (selectSingleNode != null) { var responseCode = selectSingleNode.InnerText; approved = responseCode == "00"; if (!approved) { var strCNPUnknown = Settings.GetRequiredAppSetting("CNPResponseCodeForUnknown", "C0,68"); var cnpResponseCodeForUnknown = new List <string>(strCNPUnknown.Split(new char[] { ',' })); if (cnpResponseCodeForUnknown.Contains(responseCode.ToUpper())) { return(approved); } LogMessageWithInfo(PaymentGatewayLogEntryType.Response, orderNumber, string.Empty, "CN_99BillPaymentGateway", PaymentGatewayRecordStatusType.Declined, msgReturn); return(approved); } } var singleNode = xmlDoc.SelectSingleNode("MasMessage/TxnMsgContent/externalRefNumber"); externalRefNumberback = singleNode != null ? singleNode.InnerText : string.Empty; var refNumber = xmlDoc.SelectSingleNode("MasMessage/TxnMsgContent/refNumber"); refNumberback = refNumber != null ? refNumber.InnerText : string.Empty; var authorizationCode = xmlDoc.SelectSingleNode("MasMessage/TxnMsgContent/authorizationCode"); authorizationCodeback = authorizationCode != null ? authorizationCode.InnerText : string.Empty; var retAmount = xmlDoc.SelectSingleNode("MasMessage/TxnMsgContent/amount"); gatewayAmount = retAmount != null ? retAmount.InnerText : string.Empty; LogMessageWithInfo(PaymentGatewayLogEntryType.Response, orderNumber, distributorId, "CN_99BillPaymentGatewayInvoker", PaymentGatewayRecordStatusType.Approved, msgReturn); //sessionInfo.OrderStatus = SubmitOrderStatus.Unknown; } payment.Card.IssuingBankID = refNumberback; payment.AuthorizationMerchantAccount = externalRefNumberback; return(approved); } else { var resp = string.Format( "Response failure. Unable to connect to 99Bill. OrderNumber: {0} ; response: {1}; status: {2}", orderNumber, response.Response, response.Status); //LoggerHelper.Error(resp); LogMessageWithInfo(PaymentGatewayLogEntryType.Response, orderNumber, distributorId, "CN_99BillPaymentGatewayInvoker", PaymentGatewayRecordStatusType.Declined, resp); return(false); } } else { var resp = "Response null, Unable to connect to 99Bill. OrderNumber:" + orderNumber; //LoggerHelper.Error(resp); LogMessageWithInfo(PaymentGatewayLogEntryType.Response, orderNumber, distributorId, "CN_99BillPaymentGatewayInvoker", PaymentGatewayRecordStatusType.Declined, resp); return(false); } } else { var resp = "PostCNP - " + lockfailed.TrimStart(',') + " locking fails. OrderNumber:" + orderNumber; LogMessageWithInfo(PaymentGatewayLogEntryType.Response, orderNumber, distributorId, "CN_99BillPaymentGatewayInvoker", PaymentGatewayRecordStatusType.Declined, resp); return(false); } } catch (Exception ex) { var resp = string.Format("PostCNP Error. OrderNumber: {0}. ex : {1} ", orderNumber, ex.Message); LoggerHelper.Error(resp); LogMessage(PaymentGatewayLogEntryType.Response, orderNumber, distributorId, "CN_99BillPaymentGatewayInvoker", PaymentGatewayRecordStatusType.Declined, resp); return(false); } }
public MobileResponseWrapper Post(WechatPrepayIdRequestViewModel request, string memberId) { if (request == null || request.Data == null || request.Data.Prepay == null || request.Data.Order == null) { throw CreateException(HttpStatusCode.BadRequest, "request is null", 500404); } string obj = JsonConvert.SerializeObject(request); SetOrderMemberId(request.Data.Order); request.Data.Prepay.Locale = Thread.CurrentThread.CurrentCulture.Name; request.Data.Prepay.MemberId = memberId; var authToken = Guid.Empty; if (null != Request && null != Request.Headers && Request.Headers.Any()) { if (Request.Headers.Contains("X-HLUSER-TOKEN")) { var authTokenValue = Request.Headers.GetValues("X-HLUSER-TOKEN").FirstOrDefault(); if (!string.IsNullOrEmpty(authTokenValue)) { Guid.TryParse(authTokenValue, out authToken); } } } WechatPrepayIdResponseViewModel result = null; var errors = new List <ValidationErrorViewModel>(); if (null != request.Data.Order) { request.Data.Order.Locale = Thread.CurrentThread.CurrentCulture.Name; var amount = decimal.Zero; var id = _mobileWechatProvider.InsertToPaymentGatewayRecord(request.Data.Order, authToken == Guid.Empty ? Guid.NewGuid() : authToken, ref amount); if (id == 0) { errors.Add(new ValidationErrorViewModel { Code = 101416, Reason = "InsertToPaymentGatewayRecord failed" }); } if (!string.IsNullOrEmpty(request.Data.Order.OrderNumber) && amount > 0) { bool isLockedeach = true; bool isLocked = true; string lockfailed = string.Empty; if (request.Data.Order.pcLearningPointOffSet > 0M && request.Data.Order.CategoryType != "ETO") { isLockedeach = OrderProvider.LockPCLearningPoint(request.Data.Prepay.MemberId, request.Data.Order.OrderNumber, request.Data.Order.OrderMonth, request.Data.Order.pcLearningPointOffSet, HLConfigManager.Platform); if (!isLockedeach) { lockfailed = "PC Learning Point"; isLocked = false; } } else if (request.Data.Order.pcLearningPointOffSet > 0M) { isLockedeach = OrderProvider.LockETOLearningPoint( request.Data.Order.OrderItems.Select(s => s.Sku), request.Data.Prepay.MemberId, request.Data.Order.OrderNumber, request.Data.Order.OrderMonth, request.Data.Order.pcLearningPointOffSet, HLConfigManager.Platform); if (!isLockedeach) { lockfailed = "ETO Learning Point"; isLocked = false; } } var shoppingcart = ShoppingCartProvider.GetShoppingCart(request.Data.Prepay.MemberId, request.Data.Prepay.Locale, true, false); if (shoppingcart.HastakenSrPromotion) { isLockedeach = ChinaPromotionProvider.LockSRPromotion(shoppingcart, request.Data.Order.OrderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", SR Promotion"; isLocked = false; } } if (shoppingcart.HastakenSrPromotionGrowing) { isLockedeach = ChinaPromotionProvider.LockSRQGrowingPromotion(shoppingcart, request.Data.Order.OrderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", SR Query Growing"; isLocked = false; } } if (shoppingcart.HastakenSrPromotionExcelnt) { isLockedeach = ChinaPromotionProvider.LockSRQExcellentPromotion(shoppingcart, request.Data.Order.OrderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", SR Query Excellent"; isLocked = false; } } if (shoppingcart.HastakenBadgePromotion) { isLockedeach = ChinaPromotionProvider.LockBadgePromotion(shoppingcart, request.Data.Order.OrderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", BadgePromotion"; isLocked = false; } } if (shoppingcart.HastakenNewSrpromotion) { isLockedeach = ChinaPromotionProvider.LockNewSRPromotion(shoppingcart, request.Data.Order.OrderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", NewSrPromotion"; isLocked = false; } } if (shoppingcart.HasBrochurePromotion) { isLockedeach = ChinaPromotionProvider.LockBrochurePromotion(shoppingcart, request.Data.Order.OrderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", BrochurePromotion"; isLocked = false; } } if (isLocked) { result = _mobileWechatProvider.GetPrepayId(request.Data.Prepay, request.Data.Order.OrderNumber, amount); } else { errors.Add(new ValidationErrorViewModel { Code = 101417, Reason = lockfailed.TrimStart(',') + " locking failed" }); } } } var response = new MobileResponseWrapper { Data = result, ValidationErrors = errors.Any() ? errors : null }; JObject json = JObject.Parse(obj); MobileActivityLogProvider.ActivityLog(json, response, memberId ?? string.Empty, true, Request.RequestUri.ToString(), Request.Headers.ToString(), Request.Headers.UserAgent.ToString(), request.Data.Prepay.Locale); return(response); }
/// <summary> /// display Promo /// </summary> private void displayPromo() { divPromo.Visible = false; PromotionInformation promo; List <CatalogItem> PcPromoOnly = new List <CatalogItem>(); Dictionary <string, SKU_V01> _AllSKUS = null; if (ShoppingCart != null && ShoppingCart.CartItems.Any()) { if (ShoppingCart.DeliveryInfo == null || string.IsNullOrEmpty(ShoppingCart.DeliveryInfo.WarehouseCode)) { return; } if (CatalogProvider.IsPreordering(ShoppingCart.CartItems, ShoppingCart.DeliveryInfo.WarehouseCode)) { return; } } else { return; } var profile = DistributorOrderingProfileProvider.GetProfile(ShoppingCart.DistributorID, ShoppingCart.DeliveryInfo.Address.Address.Country); if ((promo = ChinaPromotionProvider.GetPCPromotion(profile.CNCustomorProfileID.ToString(), ShoppingCart.DistributorID)) != null) { var totals = ShoppingCart.Totals as MyHerbalife3.Ordering.ServiceProvider.OrderSvc.OrderTotals_V02; decimal currentMonthTotalDue = 0; if (promo.MonthlyInfo != null) { if (promo.MonthlyInfo.Count > 0) { currentMonthTotalDue = promo.MonthlyInfo[0].Amount; } } if (totals != null && totals.OrderFreight != null && totals.AmountDue + currentMonthTotalDue - totals.OrderFreight.FreightCharge >= promo.promoelement.AmountMinInclude) { if (promo.IsEligible) { if (promo.SKUList.Count > 0) { if (ShoppingCart != null && ShoppingCart.CartItems.Count > 0) { if (rblFreeGiftlist.Items.Count > 0) { rblFreeGiftlist.Items.Clear(); } _AllSKUS = (ProductsBase).ProductInfoCatalog.AllSKUs; SKU_V01 sku; foreach (CatalogItem t in promo.SKUList) { if (_AllSKUS.TryGetValue(t.SKU, out sku)) { if (!ChinaPromotionProvider.GetPCPromoCode(t.SKU).Trim().Equals("PCPromo")) { continue; } if (( ShoppingCartProvider.CheckInventory(t as CatalogItem_V01, 1, ProductsBase.CurrentWarehouse) > 0 && (CatalogProvider.GetProductAvailability(sku, ProductsBase.CurrentWarehouse) == ProductAvailabilityType.Available))) { rblFreeGiftlist.Items.Add(new ListItem(t.Description, t.SKU)); divPromo.Visible = true; PcPromoOnly.Add(t); } } } if (rblFreeGiftlist.Items.Count > 0) { rblFreeGiftlist.Items[0].Selected = true; } var myShoppingCart = (Page as ProductsBase).ShoppingCart; var promoInCart = myShoppingCart.CartItems.Select(c => c.SKU).Intersect(PcPromoOnly.Select(f => f.SKU)); if (promoInCart.Any()) { btnAddToCart.Enabled = false; divPromo.Visible = false; } else { btnAddToCart.Enabled = true; } if (ShoppingCart.CartItems.Count == 1) { if (promoInCart.Any()) { ShoppingCart.DeleteItemsFromCart(promoInCart.ToList(), true); } } } } } else { var itemsInBoth = ShoppingCart.CartItems.Where(x => x.IsPromo) .Select(c => c.SKU) .Intersect(promo.SKUList.Select(f => f.SKU)); if (itemsInBoth.Any()) { ShoppingCart.DeleteItemsFromCart(itemsInBoth.ToList(), true); } } } else { var itemsInBoth = ShoppingCart.CartItems.Where(x => x.IsPromo) .Select(c => c.SKU) .Intersect(promo.SKUList.Select(f => f.SKU)); if (itemsInBoth.Any()) { ShoppingCart.DeleteItemsFromCart(itemsInBoth.ToList(), true); } } } promotionPanel.Update(); }
private void displayBadgePromo() { divPromo.Visible = false; List <CatalogItem> badgePromoList = new List <CatalogItem>(); Dictionary <string, SKU_V01> allsku = null; if (ShoppingCart != null && ShoppingCart.CartItems.Any()) { if (ShoppingCart.DeliveryInfo == null || string.IsNullOrEmpty(ShoppingCart.DeliveryInfo.WarehouseCode)) { return; } if (CatalogProvider.IsPreordering(ShoppingCart.CartItems, ShoppingCart.DeliveryInfo.WarehouseCode)) { return; } if (!(ShoppingCart.OrderCategory == ServiceProvider.CatalogSvc.OrderCategoryType.RSO)) { return; } if (APFDueProvider.hasOnlyAPFSku(ShoppingCart.CartItems, Locale)) { return; } } else { divPromo.Visible = false; promotionPanel.Update(); return; } //var profile = DistributorOrderingProfileProvider.GetProfile(ShoppingCart.DistributorID, ShoppingCart.DeliveryInfo.Address.Address.Country); var memberId = String.IsNullOrEmpty(ShoppingCart.SrPlacingForPcOriginalMemberId) ? ShoppingCart.DistributorID : ShoppingCart.SrPlacingForPcOriginalMemberId; if (ChinaPromotionProvider.IsEligibleForBadgePromotion(ShoppingCart, HLConfigManager.Platform, memberId)) { var cacheKey = string.Format("GetBadgePromoDetail_{0}", memberId); var results = HttpRuntime.Cache[cacheKey] as GetBadgePinResponse_V01; if (results != null) { var badgeList = results.BadgeDetails; if (results != null && badgeList.Length > 0) { if (ShoppingCart != null && ShoppingCart.CartItems.Count > 0) { if (cblFreeGiftlist.Items.Count > 0) { cblFreeGiftlist.Items.Clear(); } allsku = ProductsBase.ProductInfoCatalog.AllSKUs; foreach (var badge in badgeList) { if (allsku.ContainsKey(badge.BadgeCode)) { var sku = allsku[badge.BadgeCode]; if (ShoppingCartProvider.CheckInventory(sku.CatalogItem, badge.Quantity, ProductsBase.CurrentWarehouse) > 0 && CatalogProvider.GetProductAvailability(sku, ProductsBase.CurrentWarehouse) == ProductAvailabilityType.Available) { cblFreeGiftlist.Items.Add( new ListItem { Selected = true, Text = String.Format(s_promotionItemDisplayFormat, badge.BadegName, badge.Quantity), Value = sku.SKU }); //divPromo.Visible = true; badgePromoList.Add(sku.CatalogItem); } } } //var myShoppingCart = ProductsBase.ShoppingCart; var promoInCart = ShoppingCart.CartItems.Select(c => c.SKU).Intersect(badgePromoList.Select(f => f.SKU)); if (promoInCart.Any()) { foreach (var x in promoInCart) { var foundItems = new List <ListItem>(); foreach (ListItem item in cblFreeGiftlist.Items) { if (item.Value == x) { foundItems.Add(item); } } foundItems.ForEach(f => cblFreeGiftlist.Items.Remove(f)); } } else { btnAddToCart.Enabled = true; // ShoppingCart.HastakenSrPromotion = false; lblFreeGift.Text = GetLocalResourceObject("lblFreeGiftResource1.Text") as string; } if (ShoppingCart.CartItems.Count >= 1) { var others = ShoppingCart.CartItems.Where(s => !s.IsPromo) .Select(c => c.SKU) .Except(APFDueProvider.GetAPFSkuList()); if (!others.Any()) { if (promoInCart.Any()) { ShoppingCart.DeleteItemsFromCart(promoInCart.ToList(), true); } } } divPromo.Visible = cblFreeGiftlist.Items.Count > 0; } } else { var itemsInBoth = ShoppingCart.CartItems .Where(x => x.IsPromo) .Select(c => c.SKU) .Intersect(badgeList.Select(b => b.BadgeCode), StringComparer.OrdinalIgnoreCase); if (itemsInBoth.Any()) { ShoppingCart.DeleteItemsFromCart(itemsInBoth.ToList(), true); } } } } promotionPanel.Update(); }
private void displaySRPromo() { divPromo.Visible = false; PromotionInformation promo; List <CatalogItem> SRPromoOnly = new List <CatalogItem>(); Dictionary <string, SKU_V01> _AllSKUS = null; if (ShoppingCart != null && ShoppingCart.CartItems.Any()) { if (ShoppingCart.DeliveryInfo == null || string.IsNullOrEmpty(ShoppingCart.DeliveryInfo.WarehouseCode)) { return; } if (CatalogProvider.IsPreordering(ShoppingCart.CartItems, ShoppingCart.DeliveryInfo.WarehouseCode)) { return; } } else { return; } var profile = DistributorOrderingProfileProvider.GetProfile(ShoppingCart.DistributorID, ShoppingCart.DeliveryInfo.Address.Address.Country); if (ChinaPromotionProvider.IsEligibleForSRPromotion(ShoppingCart, HLConfigManager.Platform)) { var cacheKey = string.Format("GetSRPromoDetail_{0}", ShoppingCart.DistributorID); var results = HttpRuntime.Cache[cacheKey] as GetSRPromotionResponse_V01; var skuList = results.Skus.Split(',').ToArray(); if (results != null && !string.IsNullOrWhiteSpace(results.Skus)) { //if (promo.IsEligible) //{ if (skuList.Count() > 0) { if (ShoppingCart != null && ShoppingCart.CartItems.Count > 0) { if (rblFreeGiftlist.Items.Count > 0) { rblFreeGiftlist.Items.Clear(); } _AllSKUS = (ProductsBase).ProductInfoCatalog.AllSKUs; SKU_V01 sku; foreach (var t in skuList) { if (_AllSKUS.TryGetValue(t, out sku)) { if (( ShoppingCartProvider.CheckInventory(sku.CatalogItem, 1, ProductsBase.CurrentWarehouse) > 0 && (CatalogProvider.GetProductAvailability(sku, ProductsBase.CurrentWarehouse) == ProductAvailabilityType.Available))) { rblFreeGiftlist.Items.Add(new ListItem(sku.Description, t)); divPromo.Visible = true; SRPromoOnly.Add(sku.CatalogItem); } } } if (rblFreeGiftlist.Items.Count > 0) { rblFreeGiftlist.Items[0].Selected = true; } var myShoppingCart = (Page as ProductsBase).ShoppingCart; var promoInCart = myShoppingCart.CartItems.Select(c => c.SKU).Intersect(SRPromoOnly.Select(f => f.SKU)); if (promoInCart.Any()) { btnAddToCart.Enabled = false; divPromo.Visible = false; // ShoppingCart.HastakenSrPromotion = true; } else { btnAddToCart.Enabled = true; // ShoppingCart.HastakenSrPromotion = false; lblFreeGift.Text = GetLocalResourceObject("lblFreeGiftResource1.Text") as string; } if (ShoppingCart.CartItems.Count == 1) { if (promoInCart.Any()) { ShoppingCart.DeleteItemsFromCart(promoInCart.ToList(), true); } } } } } else { var itemsInBoth = ShoppingCart.CartItems.Where(x => x.IsPromo) .Select(c => c.SKU) .Intersect(skuList, StringComparer.OrdinalIgnoreCase); if (itemsInBoth.Any()) { ShoppingCart.DeleteItemsFromCart(itemsInBoth.ToList(), true); } } //} //else //{ // var itemsInBoth = // ShoppingCart.CartItems.Where(x => x.IsPromo) // .Select(c => c.SKU) // .Intersect(promo.SKUList.Select(f => f.SKU)); // if (itemsInBoth.Any()) // ShoppingCart.DeleteItemsFromCart(itemsInBoth.ToList(), true); //} } promotionPanel.Update(); }
public override void Submit() { bool isLockedeach = true; bool isLocked = true; string lockfailed = string.Empty; var currentSession = SessionInfo.GetSessionInfo(HttpContext.Current.User.Identity.Name, _locale); if (currentSession != null) { if (currentSession.ShoppingCart != null && currentSession.ShoppingCart.pcLearningPointOffSet > 0M && !(currentSession.ShoppingCart.OrderCategory == ServiceProvider.CatalogSvc.OrderCategoryType.ETO)) { isLockedeach = OrderProvider.LockPCLearningPoint(_distributorId, OrderNumber, new OrderMonth(currentSession.ShoppingCart.CountryCode).OrderMonthShortString, Convert.ToInt32(Math.Truncate(currentSession.ShoppingCart.pcLearningPointOffSet)), HLConfigManager.Platform); if (!isLockedeach) { lockfailed = "PC Learning Point"; isLocked = false; } } else if (currentSession.ShoppingCart != null && currentSession.ShoppingCart.pcLearningPointOffSet > 0M) { isLockedeach = OrderProvider.LockETOLearningPoint( currentSession.ShoppingCart.CartItems.Select(s => s.SKU), _distributorId, OrderNumber, new OrderMonth(currentSession.ShoppingCart.CountryCode).OrderMonthShortString, Convert.ToInt32(Math.Truncate(currentSession.ShoppingCart.pcLearningPointOffSet)), HLConfigManager.Platform); if (!isLockedeach) { lockfailed = "ETO Learning Point"; isLocked = false; } } if (currentSession.ShoppingCart.HastakenSrPromotion) { isLockedeach = ChinaPromotionProvider.LockSRPromotion(currentSession.ShoppingCart, _orderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", SR Promotion"; isLocked = false; } } if (currentSession.ShoppingCart.HastakenSrPromotionGrowing) { isLockedeach = ChinaPromotionProvider.LockSRQGrowingPromotion(currentSession.ShoppingCart, _orderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", SR Query Growing"; isLocked = false; } } if (currentSession.ShoppingCart.HastakenSrPromotionExcelnt) { isLockedeach = ChinaPromotionProvider.LockSRQExcellentPromotion(currentSession.ShoppingCart, _orderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", SR Query Excellent"; isLocked = false; } } if (currentSession.ShoppingCart.HastakenBadgePromotion) { isLockedeach = ChinaPromotionProvider.LockBadgePromotion(currentSession.ShoppingCart, _orderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", Badge promo"; isLocked = false; } } if (currentSession.ShoppingCart.HastakenNewSrpromotion) { isLockedeach = ChinaPromotionProvider.LockNewSRPromotion(currentSession.ShoppingCart, _orderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", NewSrPromotion"; isLocked = false; } } } if (currentSession.ShoppingCart.HasBrochurePromotion) { isLockedeach = ChinaPromotionProvider.LockBrochurePromotion(currentSession.ShoppingCart, _orderNumber); if (!isLockedeach) { lockfailed = lockfailed + ", Brochure Promotion"; isLocked = false; } } if (isLocked) { CN_99BillQuickPayProvider provider = new CN_99BillQuickPayProvider(); var resultString = provider.Submit(_orderNumber, _orderAmount); if (!string.IsNullOrEmpty(resultString)) { var verStr = Encrypt(resultString, EncryptionKey); var url = string.Format("{0}?QPVerStr={1}", _configHelper.GetConfigEntry("paymentGatewayReturnUrlApproved"), verStr); HttpContext.Current.Response.Redirect(url, false); HttpContext.Current.ApplicationInstance.CompleteRequest(); } } else { var resultString = string.Format("{0},{1},{2},{3},{4},{5}", OrderNumber, "0", DateTime.Now.ToString(DateTimeFormat), "", "", ""); var verStr = Encrypt(resultString, EncryptionKey); var url = string.Format("{0}?QPVerStr={1}", _configHelper.GetConfigEntry("paymentGatewayReturnUrlApproved"), verStr); HttpContext.Current.Response.Redirect(url, false); HttpContext.Current.ApplicationInstance.CompleteRequest(); } }
/// <summary> /// display Promo /// </summary> private void displayPromo() { divPromo.Visible = false; PromotionInformation promo; List <CatalogItem> PcPromoOnly = new List <CatalogItem>(); Dictionary <string, SKU_V01> _AllSKUS = null; if ((promo = ChinaPromotionProvider.GetChinaPromotion(DistributorID)) != null) { var currestsession = SessionInfo.GetSessionInfo(DistributorID, "zh-CN"); if (currestsession != null && currestsession.ChinaPromoSKUQuantity > 0) { if (promo.SKUList.Count > 0) { if (ShoppingCart != null && ShoppingCart.CartItems.Count > 0) { if (rblFreeGiftlist.Items.Count > 0) { rblFreeGiftlist.Items.Clear(); } _AllSKUS = (ProductsBase).ProductInfoCatalog.AllSKUs; SKU_V01 sku; foreach (CatalogItem t in promo.SKUList) { if (_AllSKUS.TryGetValue(t.SKU, out sku)) { if (!ChinaPromotionProvider.GetPCPromoCode(t.SKU).Trim().Equals("DSChinaPromo")) // SKUs are same for both DSChinaPromo and PCChinaPromo { continue; } if (( ShoppingCartProvider.CheckInventory(t as CatalogItem_V01, 1, ProductsBase.CurrentWarehouse) > 0 && (CatalogProvider.GetProductAvailability(sku, ProductsBase.CurrentWarehouse) == ProductAvailabilityType.Available))) { rblFreeGiftlist.Items.Add(new ListItem(t.Description, t.SKU)); divPromo.Visible = true; PcPromoOnly.Add(t); } } } ChinaPromoSkus = PcPromoOnly; if (rblFreeGiftlist.Items.Count > 0) { rblFreeGiftlist.Items[0].Selected = true; } var myShoppingCart = (Page as ProductsBase).ShoppingCart; var promoInCart = myShoppingCart.CartItems.Select(c => c.SKU).Intersect(PcPromoOnly.Select(f => f.SKU)); var itemcount = promoInCart as string[] ?? promoInCart.ToArray(); var count = (from skucount in myShoppingCart.CartItems from cartitem in itemcount where cartitem.Trim().Equals(skucount.SKU.Trim()) select skucount.Quantity).Sum(); if (count == currestsession.ChinaPromoSKUQuantity) { btnAddToCart.Enabled = false; divPromo.Visible = false; } else if (count > currestsession.ChinaPromoSKUQuantity) { var itemsInBoth = myShoppingCart.CartItems.Where(x => x.IsPromo) .Select(c => c.SKU) .Intersect(ChinaPromoSkus.Select(f => f.SKU)); if (itemsInBoth.Any()) { myShoppingCart.DeleteItemsFromCart(itemsInBoth.ToList(), true); } btnAddToCart.Enabled = true; lblFreeGift.Text = string.Format(GetLocalResourceObject("lblFreeGiftResource1.Text") as string, currestsession.ChinaPromoSKUQuantity); } else { btnAddToCart.Enabled = true; lblFreeGift.Text = string.Format(GetLocalResourceObject("lblFreeGiftResource1.Text") as string, currestsession.ChinaPromoSKUQuantity - count); } } } } promotionPanel.Update(); } }