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