Exemple #1
0
        public void RequestPin(string orderNumber, Order_V01 order, MyHLShoppingCart shoppingCart)
        {
            Token = "";
            var quickPayProvider     = new CN_99BillQuickPayProvider();
            var isMobilePinRequested = quickPayProvider.RequestMobilePinForPurchase(orderNumber, order, shoppingCart);

            if (isMobilePinRequested)
            {
                Token = quickPayProvider.Token;
                OneTimePinPopupExtender.Show();
            }
            else
            {
                if (!String.IsNullOrEmpty(quickPayProvider.LastErrorMessage))
                {
                    LastErrorMessage = quickPayProvider.LastErrorMessage;
                }
            }
        }
Exemple #2
0
        protected void OnBankList_QuickPaySelected(object sender, EventArgs e)
        {
            if (!Page.Request.Params.Get("__EVENTTARGET").EndsWith("BankList_QuickPay")) //workaround for the dynamic control loading that causing OnSelectedIndexChanged event triggered during postback.
            {
                return;
            }

            string cardType = "";

            if (BankList_QuickPay.SelectedIndex > 0)
            {
                if (IsQuickPayDebitCard())
                {
                    cardType = "0002";
                }
                else
                {
                    cardType = "0001";
                }

                var phoneNumber = DistributorOrderingProfileProvider.GetPhoneNumberForCN(_distributorId).Trim();
                var tins        = DistributorOrderingProfileProvider.GetTinList(_distributorId, true);
                var tin         = tins.Find(t => t.ID == "CNID");

                var disId          = _distributorId;
                var membershipUser = (MembershipUser <DistributorProfileModel>)Membership.GetUser();
                var name           = string.Empty;
                if (membershipUser != null)
                {
                    name = membershipUser.Value.DistributorName();
                }

                var quickPayProvider = new CN_99BillQuickPayProvider();
                var isCardAvailable  = quickPayProvider.CheckBindedCard(BankList_QuickPay.SelectedValue, cardType, phoneNumber);

                if (isCardAvailable)
                {
                    ExistingCard.Visible   = true;
                    NewCardBinding.Visible = false;

                    CardNumberLabel_QuickPay.Text     = quickPayProvider.StorablePAN;
                    CardHolderNameLabel_QuickPay.Text = name;
                    IdentityNumberLabel_QuickPay.Text = tin == null ? string.Empty : tin.IDType.Key.Trim();
                    PhoneNumberLabel_QuickPay.Text    = phoneNumber;
                }
                else
                {
                    if (!string.IsNullOrEmpty(quickPayProvider.LastErrorMessage))
                    {
                        lblErrorMessages.Text = quickPayProvider.LastErrorMessage;
                    }

                    ExistingCard.Visible   = false;
                    NewCardBinding.Visible = true;

                    ClearQuickPayCardInput();

                    CardHolderName_QuickPay.Text = name;
                    IdentityNumber_QuickPay.Text = tin == null ? string.Empty : tin.IDType.Key.Trim();
                    PhoneNumber_QuickPay.Text    = phoneNumber;
                }
            }
            else
            {
                ExistingCard.Visible   = false;
                NewCardBinding.Visible = true;

                ClearQuickPayCardInput();
            }
        }
Exemple #3
0
        public MobileResponseWrapper GetBindedCards(string disID)
        {
            var result      = new List <BindedCardswithBanklist>();
            var phoneNumber = DistributorOrderingProfileProvider.GetPhoneNumberForCN(disID).Trim();
            var cn99BillQuickPayProvider = new CN_99BillQuickPayProvider();
            var tins = DistributorOrderingProfileProvider.GetTinList(disID, true);
            var tin  = tins.Find(t => t.ID == "CNID");

            PaymentInformation bindedCard = null;

            List <PaymentInformation> bindedCards = cn99BillQuickPayProvider.LoadStorableDataQuick(phoneNumber, disID);

            var usageDebit = BankUsage.UsedByQPDebit;
            var debitCards = BankInfoProvider.GetAvailableBanks(usageDebit);

            var usageCredit = BankUsage.UsedByQPCredit;
            var creditCards = BankInfoProvider.GetAvailableBanks(usageCredit);

            //QD
            if (debitCards != null && debitCards.Count > 0)
            {
                foreach (BankInformation item in debitCards)
                {
                    if (bindedCards != null && bindedCards.Count > 0)
                    {
                        bindedCard = (from a in bindedCards where a.CardType.Trim() == "QD" && a.Alias.Trim() == item.BankCode.Trim() select a).FirstOrDefault();
                    }

                    var currentBindedCard = new BindedCardswithBanklist()
                    {
                        BankCode = item.BankCode,
                        BankName = item.BankName,
                        CardType = "QD",
                    };

                    if (bindedCard != null && bindedCard.CardHolder != null)
                    {
                        currentBindedCard.BindedCard = new BindedCardViewModel();
                        currentBindedCard.BindedCard.CardHolderName = bindedCard.CardHolder.First;
                        currentBindedCard.BindedCard.CardNumber     = bindedCard.CardNumber;
                    }

                    result.Add(currentBindedCard);
                    bindedCard = null;
                }
            }

            //QC
            if (creditCards != null && creditCards.Count > 0)
            {
                foreach (BankInformation item in creditCards)
                {
                    if (bindedCards != null && bindedCards.Count > 0)
                    {
                        bindedCard = (from a in bindedCards where a.CardType.Trim() == "QC" && a.Alias.Trim() == item.BankCode.Trim() select a).FirstOrDefault();
                    }

                    var currentBindedCard = new BindedCardswithBanklist()
                    {
                        BankCode = item.BankCode,
                        BankName = item.BankName,
                        CardType = "QC",
                    };

                    if (bindedCard != null && bindedCard.CardHolder != null)
                    {
                        currentBindedCard.BindedCard = new BindedCardViewModel();
                        currentBindedCard.BindedCard.CardHolderName = bindedCard.CardHolder.First;
                        currentBindedCard.BindedCard.CardNumber     = bindedCard.CardNumber;
                    }

                    result.Add(currentBindedCard);
                    bindedCard = null;
                }
            }

            var response = new MobileResponseWrapper
            {
                Data = new BindedCardswithBanklistResponseVewModel {
                    BankList = result, PhoneNumber = phoneNumber, CNID = tin.IDType.Key.Trim()
                },
            };

            return(response);
        }
Exemple #4
0
        public OrderResponseViewModel RequestMobilePin(OrderRequestViewModel request)
        {
            string obj = JsonConvert.SerializeObject(request);
            List <ValidationErrorViewModel> errors = null;

            request.Data.OrderMemberId = string.IsNullOrEmpty(request.Data.OrderMemberId) && !string.IsNullOrEmpty(request.Data.CustomerId) ? request.Data.CustomerId : request.Data.OrderMemberId;
            var viewModel    = request.Data;
            var shoppingcart = _mobileQuoteHelper.PriceCart(ref viewModel, ref errors);
            var quickPayresponseviewModel = new OrderResponseViewModel();

            if (null != errors && errors.Any())
            {
                quickPayresponseviewModel.ValidationErrors = errors;
                return(quickPayresponseviewModel);
            }
            var     orderTotalsV01 = shoppingcart.Totals as ServiceProvider.OrderSvc.OrderTotals_V01;
            var     orderTotalsV02 = shoppingcart.Totals as ServiceProvider.OrderSvc.OrderTotals_V02;
            decimal amount;
            var     order = _mobileQuickPayController.Getorder(viewModel, ref errors, orderTotalsV02, orderTotalsV01,
                                                               out amount);
            var ordernumber = order.OrderID;

            if (string.IsNullOrWhiteSpace(ordernumber))
            {
                ordernumber = _mobileQuickPayController.GetOrderNumber(amount, shoppingcart.CountryCode, shoppingcart.DistributorID);
            }

            //Order_V01 order, string ordernumber, MyHLShoppingCart cart
            var cn99BillQuickPayProvider = new CN_99BillQuickPayProvider();
            var hasrequestedmobilepin    = cn99BillQuickPayProvider.RequestMobilePinForPurchase(ordernumber, order, shoppingcart, request.Data.MemberId);

            if (hasrequestedmobilepin)
            {
                var quickPayPaymentViewModel = request.Data.Payments[0] as QuickPayPaymentViewModel;
                if (quickPayPaymentViewModel != null)
                {
                    quickPayPaymentViewModel.StorablePAN = cn99BillQuickPayProvider.StorablePAN;
                    quickPayPaymentViewModel.Token       = cn99BillQuickPayProvider.Token;
                }

                viewModel.OrderNumber = ordernumber;
            }

            if (!string.IsNullOrEmpty(cn99BillQuickPayProvider.LastErrorMessage))
            {
                if (errors == null)
                {
                    errors = new List <ValidationErrorViewModel>();
                }

                errors.Add(new ValidationErrorViewModel {
                    Code = 126000, Reason = cn99BillQuickPayProvider.LastErrorMessage
                });
            }

            quickPayresponseviewModel.Data = viewModel;

            if (null != errors && errors.Any())
            {
                quickPayresponseviewModel.ValidationErrors = errors;
            }

            JObject json = JObject.Parse(obj);

            MobileActivityLogProvider.ActivityLog(json, quickPayresponseviewModel, request.Data.MemberId, true,
                                                  this.Request.RequestUri.ToString(),
                                                  this.Request.Headers.ToString(),
                                                  this.Request.Headers.UserAgent.ToString(),
                                                  request.Data.Locale);

            return(quickPayresponseviewModel);
        }
        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();
            }
        }