Example #1
0
        /// <summary>
        /// Begins the payment.
        /// </summary>
        /// <param name="paymentSystem">The payment System.</param>
        /// <param name="paymentArgs">The payment arguments.</param>
        public override void Invoke([NotNull] PaymentSystem paymentSystem, [NotNull] PaymentArgs paymentArgs)
        {
            Assert.IsNotNull(paymentSystem, "Payment method is null");
            Assert.ArgumentNotNull(paymentArgs, "paymentArgs");
            Assert.IsNotNull(paymentArgs.ShoppingCart, "Shopping cart is null");

            PaymentSettingsReader configuration = new PaymentSettingsReader(paymentSystem);

            string merchantId         = paymentSystem.Username;
            string token              = paymentSystem.Password;
            string amount             = paymentArgs.ShoppingCart.Totals.TotalPriceIncVat.ToCents();
            string currencyCode       = this.Currency(paymentArgs.ShoppingCart.Currency.Code);
            string orderNumber        = paymentArgs.ShoppingCart.OrderNumber;
            string redirectUrl        = paymentArgs.PaymentUrls.ReturnPageUrl;
            string paymentSystemCode  = paymentSystem.Code;
            string webServicePlatform = configuration.GetSetting("webServicePlatform");
            string language           = configuration.GetSetting("language");

            RegisterRequest request = new RegisterRequest
            {
                Order = new Order
                {
                    Amount       = amount,
                    OrderNumber  = orderNumber,
                    CurrencyCode = currencyCode
                },
                Terminal = new Terminal
                {
                    Language    = language,
                    RedirectUrl = redirectUrl
                },
                Environment = new Services.Environment
                {
                    WebServicePlatform = webServicePlatform
                }
            };

            Netaxept client = new Netaxept();

            try
            {
                RegisterResponse    response = client.Register(merchantId, token, request);
                NameValueCollection data     = new NameValueCollection
                {
                    { "MerchantID", merchantId },
                    { "TransactionID", response.TransactionId }
                };

                ITransactionData transactionDataProvider = Context.Entity.Resolve <ITransactionData>();
                transactionDataProvider.SaveStartValues(orderNumber, amount, currencyCode, paymentSystemCode);

                this.PostData(paymentSystem.PaymentUrl, data);
            }
            catch (Exception exception)
            {
                Log.Error(exception.Message, this);
                HttpContext.Current.Session["paymentErrorMessage"] = exception.Message;
                HttpContext.Current.Response.Redirect(paymentArgs.PaymentUrls.FailurePageUrl, false);
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
        }
        /// <summary>
        /// Begins the payment.
        /// </summary>
        /// <param name="paymentSystem">The payment System.</param>
        /// <param name="paymentArgs">The payment arguments.</param>
        public override void Invoke([NotNull] PaymentSystem paymentSystem, [NotNull] PaymentArgs paymentArgs)
        {
            Assert.IsNotNull(paymentSystem, "Payment method is null");
              Assert.ArgumentNotNull(paymentArgs, "paymentArgs");
              Assert.IsNotNull(paymentArgs.ShoppingCart, "Shopping cart is null");

              PaymentSettingsReader configuration = new PaymentSettingsReader(paymentSystem);

              string merchantId = paymentSystem.Username;
              string token = paymentSystem.Password;
              string amount = paymentArgs.ShoppingCart.Totals.TotalPriceIncVat.ToCents();
              string currencyCode = this.Currency(paymentArgs.ShoppingCart.Currency.Code);
              string orderNumber = paymentArgs.ShoppingCart.OrderNumber;
              string redirectUrl = paymentArgs.PaymentUrls.ReturnPageUrl;
              string paymentSystemCode = paymentSystem.Code;
              string webServicePlatform = configuration.GetSetting("webServicePlatform");
              string language = configuration.GetSetting("language");

              RegisterRequest request = new RegisterRequest
              {
            Order = new Order
            {
              Amount = amount,
              OrderNumber = orderNumber,
              CurrencyCode = currencyCode
            },
            Terminal = new Terminal
            {
              Language = language,
              RedirectUrl = redirectUrl
            },
            Environment = new Services.Environment
            {
              WebServicePlatform = webServicePlatform
            }
              };

              Netaxept client = new Netaxept();

              try
              {
            RegisterResponse response = client.Register(merchantId, token, request);
            NameValueCollection data = new NameValueCollection
              {
            { "MerchantID", merchantId },
            { "TransactionID", response.TransactionId }
              };

            ITransactionData transactionDataProvider = Context.Entity.Resolve<ITransactionData>();
            transactionDataProvider.SaveStartValues(orderNumber, amount, currencyCode, paymentSystemCode);

            this.PostData(paymentSystem.PaymentUrl, data);
              }
              catch (Exception exception)
              {
            Log.Error(exception.Message, this);
            HttpContext.Current.Session["paymentErrorMessage"] = exception.Message;
            HttpContext.Current.Response.Redirect(paymentArgs.PaymentUrls.FailurePageUrl, false);
            HttpContext.Current.ApplicationInstance.CompleteRequest();
              }
        }