public override void GetPaymentInfo(SerializedOrderHolder holder)
        {
            var payment = holder.BTOrder.Payments[0];

            payment.PaymentCode          = "BB";
            payment.NumberOfInstallments = 1;
            payment.AuthNumber           = AuthorizationCode;
            payment.TransactionCode      = TransactionCode;
        }
        public override void GetPaymentInfo(SerializedOrderHolder holder)
        {
            var payment      = holder.BTOrder.Payments[0];
            var orderPayment = (holder.Order as Order_V01).Payments[0] as WirePayment_V01;

            payment.PaymentCode = "BT";
            // orderPayment.PaymentCode = "BB";
            // Need this? what other data?
            payment.NumberOfInstallments = 1;
        }
Exemple #3
0
        public override void GetPaymentInfo(SerializedOrderHolder holder)
        {
            var payment      = holder.BTOrder.Payments[0];
            var orderPayment = (holder.Order as Order_V01).Payments[0] as WirePayment_V01;

            payment.PaymentCode          = "BT";
            payment.NumberOfInstallments = 1;
            payment.AuthNumber           = AuthorizationCode;
            payment.TransactionCode      = TransactionCode;
        }
 /// <summary>
 ///  pass additional info
 /// </summary>
 /// <param name="holder"></param>
 public override void GetPaymentInfo(SerializedOrderHolder holder)
 {
     if ((holder.Order as Order_V01) == null || SpecialResponse == null)
     {
         return;
     }
     string[] bankInfo = SpecialResponse.Split(',');
     if (bankInfo.Length == 2 && (holder.Order as Order_V01).Payments != null && ((holder.Order as Order_V01).Payments).Count > 0)
     {
         var btPayment    = holder.BTOrder.Payments[0];
         var orderPayment = (holder.Order as Order_V01).Payments[0] as CreditPayment_V01;
         btPayment.PaymentCode                     = orderPayment.TransactionType = "DC";
         orderPayment.Card.IssuingBankID           = bankInfo[0]; // this is PayChannel
         orderPayment.AuthorizationMerchantAccount = bankInfo[1]; // this is PaymentID
     }
 }
        public override void GetPaymentInfo(SerializedOrderHolder holder)
        {
            ServiceProvider.SubmitOrderBTSvc.Payment payment = holder.BTOrder.Payments[0];
            var    orderPayment = (holder.Order as Order_V01).Payments[0] as CreditPayment_V01;
            string theCardType  = PostedValues[TheCardType];

            switch (theCardType)
            {
            case Visa:
            {
                CardType = IssuerAssociationType.Visa;
                break;
            }

            case MasterCard:
            {
                CardType = IssuerAssociationType.MasterCard;
                break;
            }

            case AmericanExpress:
            {
                CardType = IssuerAssociationType.AmericanExpress;
                break;
            }

            case Naranja:
            {
                CardType = IssuerAssociationType.TarjetaNaranja;
                break;
            }

            default:
            {
                if (theCardType.StartsWith(MasterCard, StringComparison.CurrentCultureIgnoreCase))
                {
                    CardType = IssuerAssociationType.MasterCard;
                }
                break;
            }
            }
            payment.PaymentCode = CreditCard.CardTypeToHPSCardType(CardType);
            orderPayment.Card.IssuerAssociation = CreditCard.GetCardType(payment.PaymentCode);
        }
        public TransactionInfo GetTransactionData(string refId)
        {
            ValidateCaller();
            var transactionInfo = new TransactionInfo();

            if (string.IsNullOrEmpty(refId))
            {
                LoggerHelper.Error("PagoSeguro.GetTransactionData called with empty Order Number");
                transactionInfo.RefID = "Invalid RefId";
                return(transactionInfo);
            }

            LoggerHelper.Info(string.Format(TransactionInitiated, refId));
            SerializedOrderHolder order = OrderProvider.GetPaymentGatewayOrder(refId);

            if (null != order && null != order.Order)
            {
                PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, refId, order.DistributorId,
                                                 "PagoSeguroPaymentGateway", PaymentGatewayRecordStatusType.Unknown,
                                                 string.Format(TransactionInitiated, refId));
                var totals = (order.Order as Order_V01).Pricing as OrderTotals_V01;
                if (null != totals)
                {
                    transactionInfo.Monto = Convert.ToDouble(totals.AmountDue);
                    transactionInfo.RefID = refId;
                }
                else
                {
                    LoggerHelper.Error(string.Format(InvalidOrMissingOrderData, refId));
                    transactionInfo.RefID = "Invalid Data for RefId";
                }
            }
            else
            {
                LoggerHelper.Error(string.Format(InvalidOrMissingOrderNumber, refId));
                transactionInfo.RefID = "Invalid RefId";
            }

            return(transactionInfo);
        }
Exemple #7
0
        public virtual void GetPaymentInfo(SerializedOrderHolder holder)
        {
            var payment      = holder.BTOrder.Payments[0];
            var orderPayment = (holder.Order as Order_V01).Payments[0] as CreditPayment_V01;

            if (!string.IsNullOrEmpty(CardNumber))
            {
                payment.AccountNumber = CardNumber;
            }
            else
            {
                payment.AccountNumber = PaymentInfoProvider.GetDummyCreditCardNumber(IssuerAssociationType.Visa);
            }

            payment.PaymentCode = HLConfigManager.CurrentPlatformConfigs[holder.Locale].PaymentsConfiguration.PaymentGatewayPayCode;
            if (string.IsNullOrEmpty(payment.PaymentCode))
            {
                payment.PaymentCode = CreditCard.CardTypeToHPSCardType(CardType);
            }
            orderPayment.Card.IssuerAssociation = CreditCard.GetCardType(payment.PaymentCode);

            if (!string.IsNullOrEmpty(AuthorizationCode))
            {
                payment.AuthNumber = AuthorizationCode;
            }
            orderPayment.AuthorizationCode = payment.AuthNumber;

            if (!string.IsNullOrEmpty(TransactionCode))
            {
                payment.TransactionCode = TransactionCode;
            }
            orderPayment.TransactionID = payment.TransactionCode;

            //They don't always return the full cardnumber, so if less than 15, use the base method which has a fixer in it
            if (payment.AccountNumber.Length < 15)
            {
                payment.AccountNumber = new string('*', 16 - payment.AccountNumber.Length) + payment.AccountNumber;
            }
            orderPayment.Card.AccountNumber = payment.AccountNumber;
        }
        private void SubmitOrder(string orderNumber)
        {
            string           distributorId = string.Empty;
            string           locale        = string.Empty;
            string           error         = string.Empty;
            MyHLShoppingCart shoppingCart  = null;
            var holder   = new SerializedOrderHolder();
            var response = new PagoSeguroPaymentGatewayResponse();

            response.OrderNumber = orderNumber;
            response.IsApproved  = true;

            if (OrderProvider.deSerializeAndSubmitOrder(response, out error, out holder))
            {
                locale = holder.Locale;
                if (!String.IsNullOrEmpty(holder.Email))
                {
                    //DistributorProvider.LoadDistributor(holder.DistributorId, holder.Token);
                    shoppingCart = ShoppingCartProvider.GetBasicShoppingCartFromService(holder.ShoppingCartId,
                                                                                        holder.DistributorId, locale);
                    shoppingCart.EmailAddress = holder.Email;
                    shoppingCart.Totals       = (holder.Order as Order_V01).Pricing as OrderTotals_V01;
                    EmailHelper.SendEmail(shoppingCart, holder.Order as Order_V01);
                }
                if (null != shoppingCart)
                {
                    ShoppingCartProvider.UpdateInventory(shoppingCart, shoppingCart.CountryCode, shoppingCart.Locale,
                                                         true);
                    shoppingCart.CloseCart();
                }
            }
            else
            {
                PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Error, orderNumber, distributorId,
                                                 "PagoSeguroPaymentGateway", PaymentGatewayRecordStatusType.InError,
                                                 error);
            }
        }
        /// <summary>
        ///  pass additional info
        /// </summary>
        /// <param name="holder"></param>
        public override void GetPaymentInfo(SerializedOrderHolder holder)
        {
            Order_V01 orderv01 = (holder.Order as Order_V01);

            if (orderv01 == null)
            {
                return;
            }
            if (orderv01.Payments != null && (orderv01.Payments).Count > 0)
            {
                var orderPayment = orderv01.Payments[0] as CreditPayment_V01;
                if (orderPayment != null && SpecialResponse != null)
                {
                    var btPayment = holder.BTOrder.Payments[0];
                    btPayment.PaymentCode = orderPayment.TransactionType = "CC"; //Use back 'CC' as Payment Code for BT handling.
                    string[] bankInfo = SpecialResponse.Split(',');
                    if (bankInfo.Length == 2)
                    {
                        orderPayment.Card.IssuingBankID           = bankInfo[0]; // this is PayChannel
                        orderPayment.AuthorizationMerchantAccount = bankInfo[1]; // this is PaymentID
                    }
                }
            }
        }
        public override void GetPaymentInfo(SerializedOrderHolder holder)
        {
            ServiceProvider.SubmitOrderBTSvc.Payment payment = holder.BTOrder.Payments[0];
            CreditPayment_V01 orderPayment      = (holder.Order as Order_V01).Payments[0] as CreditPayment_V01;
            List <string>     PaymentGatewayLog = OrderProvider.GetPaymentGatewayLog(OrderNumber, PaymentGatewayLogEntryType.Response);
            string            theOne            = PaymentGatewayLog.Find(i => i.Contains(CardNum));

            if (!string.IsNullOrEmpty(theOne))
            {
                NameValueCollection theResponse = GetRequestVariables(theOne);
                // Card Number
                if (!string.IsNullOrEmpty(theResponse[CardNum]))
                {
                    CardNumber = theResponse[CardNum];
                }
                // Authorization Code
                if (!string.IsNullOrEmpty(theResponse[AuthCode]))
                {
                    base.AuthorizationCode = theResponse[AuthCode];
                }
                base.GetPaymentInfo(holder);

                //WebPay Amount
                if (!string.IsNullOrEmpty(theResponse[Amount]))
                {
                    payment.Amount = Int32.Parse(theResponse[Amount]);
                }
                orderPayment.Amount = payment.Amount;


                // Number of Installments
                PaymentOptions_V01 options = new PaymentOptions_V01();
                if (!string.IsNullOrEmpty(theResponse[InstallmentNumber]))
                {
                    options.NumberOfInstallments = Int32.Parse(theResponse[InstallmentNumber]);
                }
                else
                {
                    options.NumberOfInstallments = 1;
                }
                payment.NumberOfInstallments = options.NumberOfInstallments;
                orderPayment.PaymentOptions  = options;

                // Installment Type is Card Type (VN for credit card, VD for debit card); borrow the Auth Merchant field to place the data to display on the page
                if (!string.IsNullOrEmpty(theResponse[InstallmentType]))
                {
                    payment.AuthMerchant = theResponse[InstallmentType];
                    switch (theResponse[InstallmentType].ToString().ToUpper())
                    {
                    case "VN":
                        CardType = IssuerAssociationType.Visa;
                        break;

                    case "VD":
                        CardType = IssuerAssociationType.GenericDebitCard;
                        break;

                    default:
                        CardType = IssuerAssociationType.Visa;
                        break;
                    }
                }
                orderPayment.AuthorizationMerchantAccount = payment.AuthMerchant;
            }
        }
        private void SubmitOrder(PaymentGatewayResponse response)
        {
            LoggerHelper.Info(string.Format("SubmitOrder. OrderNumber - {0}", response.OrderNumber));
            string distributorId = string.Empty;
            string locale        = string.Empty;
            string error         = string.Empty;
            var    holder        = new SerializedOrderHolder();

            if (OrderProvider.deSerializeAndSubmitOrder(response, out error, out holder))
            {
                if (holder != null && !String.IsNullOrEmpty(holder.Email))
                {
                    try
                    {
                        MyHLShoppingCart shoppingCart = null;
                        if (response.ReloadShoppingCart)
                        {
                            shoppingCart = ShoppingCartProvider.GetBasicShoppingCartFromService(holder.ShoppingCartId, holder.DistributorId, locale);
                        }
                        else
                        {
                            shoppingCart = ShoppingCartProvider.GetShoppingCart(holder.DistributorId, holder.Locale, true);
                        }
                        //ExceptionFix: Validating shoppingCart is not null
                        if (shoppingCart != null)
                        {
                            shoppingCart.EmailAddress = holder.Email;
                            if (holder.Order != null)
                            {
                                shoppingCart.Totals = (holder.Order as Order_V01).Pricing as OrderTotals_V01;
                                if (shoppingCart.ShoppingCartID == holder.ShoppingCartId)
                                {
                                    EmailHelper.SendEmail(shoppingCart, holder.Order as Order_V01);
                                }
                            }
                            CleanupOrder(shoppingCart, shoppingCart.DistributorID);
                        }
                    }
                    catch (Exception ex)
                    {
                        LoggerHelper.Error(string.Format("PaymentGatewayManager SubmitOrder-SendEmail fails : {0} ", ex.Message));
                    }
                }
            }
            else
            {
                LoggerHelper.Info(string.Format("SubmitOrder. deSerializeAndSubmitOrder could not deSerializeAndSubmitOrder. OrderNumber - {0}", response.OrderNumber));
                LoggerHelper.Error(error);
                if (error.Contains("DUPLICATE"))
                {
                }
                else if (error.Contains("TIMEOUT"))
                {
                    lbSubmitOrderStatus.Text = PlatformResources.GetGlobalResourceString("ErrorMessage", "Resubmit");
                }
                else if (error.Contains("ORDER CANNOT BE FULFILLED FOR THE DISTRIBUTOR"))
                {
                    lbSubmitOrderStatus.Text = PlatformResources.GetGlobalResourceString("ErrorMessage", "CantOrder");
                }
                else
                {
                    lbSubmitOrderStatus.Text = PlatformResources.GetGlobalResourceString("ErrorMessage", "TransactionFail");
                }
            }
        }