Example #1
0
        protected internal override void stageExecute(SalePostContext context)
        {
            SaleRepo.SaleBuilder builder = context.saleBuild();
            SalePostRequest      request = context.Request;
            AcceptorDetail       defaultAcceptorDetail = builder.Terminal.DefaultAcceptorDetail;
            AcceptorDetail       dynamicAcceptor;

            if (request.hasDynamicAcceptor())
            {
                // So we have dynamic acceptor details provided, try to use.
                dynamicAcceptor = _acceptorUtil.obtainExplicitAcceptor(builder.Terminal, request.getDynamicAcceptorName(), request.getDynamicAcceptorStreet(), request.getDynamicAcceptorCity(), request.getDynamicAcceptorState(), request.getDynamicAcceptorPostalCode(), request.getDynamicAcceptorCustomerServicePhone(), request.getDynamicAcceptorSubMerchantId(), defaultAcceptorDetail.CustomerServiceEmail);

                if (dynamicAcceptor != null)
                {
                    //Logger.info("Dynamic Acceptor associated: " + dynamicAcceptor);
                    builder.ExplictAcceptor = dynamicAcceptor;
                }
                else
                {
                    //Logger.warn("Ignoring supplied Dynamic Acceptor");
                }
            }
            else
            {
                //Logger.warn("No Dynamic Acceptor - doing nothing");
            }

            nextStg(context);
        }
        public override void stageExecute(SalePostContext context)
        {
            SaleRepo.SaleBuilder builder  = context.saleBuild();
            PANRange             binRange = builder.getCard().getPANRange();
            Scheme scheme = schemeCheck.getSchemeFromPanRange(binRange);

            if ((binRange == null) || (scheme == null))
            {
                // TODO: Throw exception rather than this?
                context.Response.ResponseCode = ResponseCode.NO_BIN_FOR_CARD_NUMBER;
                return;
            }
            else
            {
                //Logger.info("Scheme: " + scheme.AuthScheme);
                context.Scheme = scheme;
            }
            CardDate cardExpiryDate = builder.Card.ExpiryDate;

            if (cardExpiryDate == null)
            {
                //Logger.warn("Card expiry date is outside of maximum limit");
                context.Response.ResponseCode = ResponseCode.CARD_EXPIRY_DATE_INVALID;
                return;
            }
            nextStage(context);
        }
 public virtual void setSaleBuilder(SaleRepo.SaleBuilder builder)
 {
     if (saleBuilder != null)
     {
         throw new Exception("Attempt to set builder twice");
     }
     saleBuilder = builder;
 }
Example #4
0
        protected internal override void stageExecute(SalePostContext context)
        {
            SaleRepo.SaleBuilder builder = context.saleBuild();
            SalePostRequest      request = context.Request;
            string softDescriptor        = request.getSoftDescriptor();

            if (!string.ReferenceEquals(softDescriptor, null))
            {
                //Logger.info("Setting Soft Desciptor on Sale: " + softDescriptor);
                builder.SoftDescriptor = softDescriptor;
            }

            nextStg(context);
        }
Example #5
0
        protected internal override void stageExecute(SalePostContext context)
        {
            SaleRepo.SaleBuilder saleBuilder = context.saleBuild();
            SalePostRequest      request     = context.Request;

            if (String.IsNullOrEmpty(request.getAuthMode().ToString()))
            {
                //Logger.info("Setting Sale auth mode to default:" + defaultAuthMode);
                //saleBuilder.AuthMode = DefaultAuthMode;
                saleBuilder.AuthMode = AuthMode.FINAL;
            }
            else
            {
                //Logger.info("Setting Sale auth mode to:" + request.AuthMode);
                saleBuilder.AuthMode = request.getAuthMode();
            }
            nextStg(context);
        }
        public override void stageExecute(SalePostContext context)
        {
            SalePostResponse response = context.Response;

            SaleRepo.SaleBuilder saleBuilder = context.saleBuild();
            PANRange             binRange    = null;
            Card         card = saleBuilder.Card;
            ResponseCode?failureResponseCode = null;;

            if (card != null)
            {
                binRange = card.PANRange;
            }
            if (binRange != null)
            {
                Terminal terminal = saleBuilder.Terminal;
                if (terminal != null)
                {
                    failureResponseCode = checkSchemeFundsRecipient(binRange, terminal, saleBuilder.FundsRecipient, binRange.Scheme, saleBuilder.DebtRepayFlag);
                }
                else
                {
                    //Logger.warn("Sale doesn't have associated terminal = " + "Cannot perform Funds recipient check");
                }
            }
            else
            {
                //Logger.info("Not performing FundsRecipient check - Not a VISA/Mastercard card");
            }
            //nextStage(context);
            if (failureResponseCode.HasValue)
            {
                response.ResponseCode = (ResponseCode)failureResponseCode;
            }
            else
            {
                nextStage(context);
            }
        }
Example #7
0
        public override void stageExecute(SalePostContext context)
        {
            bool         isDebtRepayTrans;
            ResponseCode errorCode;

            SaleRepo.SaleBuilder saleBuilder = context.saleBuild();
            Card     card = saleBuilder.Card;
            bool     debtRepaymentProfileFlag = context.Request.getDebtRepayFlag();
            Terminal terminal = saleBuilder.Terminal;

            errorCode        = debtRepaymentSetUpUtility.checkDebtRepayFlag(card, debtRepaymentProfileFlag, terminal);
            isDebtRepayTrans = debtRepaymentSetUpUtility.isDebtRepaymentTrans(card, terminal, debtRepaymentProfileFlag);
            if (errorCode != null)
            {
                context.Response.ResponseCode = errorCode;
            }
            else
            {
                //Logger.info("Setting debt repayment flag: " + isDebtRepayTrans);
                saleBuilder.DebtRepayFlag = isDebtRepayTrans;
                nextStage(context);
            }
        }
Example #8
0
        //public SalePostSetupContext(SalePostFailedSaleCreation nxt) : base(nxt)
        //{
        //    _nextStage = nxt;
        //}

        //public override void Invoke(SalePostContext context)
        //{
        //    SaleRepo.SaleBuilder builder = _saleRepo.initialSaleBuilder();
        //    context.SaleBuilder = (SaleRepo)builder;
        //    _next.Invoke(context);
        //}

        protected internal override void stageExecute(SalePostContext context)
        {
            SaleRepo.SaleBuilder builder = _saleRepo.initialSaleBuilder();
            context.SaleBuilder = (SaleRepo)builder;
            nextStg(context);
        }
Example #9
0
 public override void stageExecute(SalePostContext context)
 {
     SaleRepo.SaleBuilder builder = saleRepo.initialSaleBuilder();
     context.SaleBuilder = (SaleRepo)builder;
     nextStage(context);
 }