public static PaymentProvider GetProvider(PaymentProviderName providerName, DataModel.Store store) { switch (providerName) { case PaymentProviderName.PayLater: return(new PayLaterPaymentProvider(store.GetPaymentProviderConfig(providerName))); case PaymentProviderName.CardCaptureOnly: return(new CardCaptureOnlyPaymentProvider(store.GetPaymentProviderConfig(providerName))); case PaymentProviderName.PayPalStandard: return(new PayPalStandardProvider(store.GetPaymentProviderConfig(providerName))); case PaymentProviderName.PayPalDirectPayment: return(new PayPalDirectPaymentProvider(store.GetPaymentProviderConfig(providerName))); case PaymentProviderName.PayPalExpressCheckout: return(new PayPalExpressCheckoutPaymentProvider(store.GetPaymentProviderConfig(providerName))); case PaymentProviderName.AuthorizeNetAim: return(new AuthorizeNetAimProvider(store.GetPaymentProviderConfig(providerName))); default: throw new ArgumentException("PaymentProvider Not Found: " + providerName.ToString()); } }
private void LoadPaymentProviders() { DataModel.Store store = StoreContext.CurrentStore; // StoreContext.CurrentStore.GetOnsiteCreditCardPaymentProvider() == PaymentProviderName.OfflinePayment // StoreContext.CurrentStore.IsPaymentProviderEnabled(PaymentProviderName.AuthorizeNetAim) // ON-SITE chkPayLater.Checked = store.IsPaymentProviderEnabled(PaymentProviderName.PayLater); chkCardCaptureOnly.Checked = store.IsPaymentProviderEnabled(PaymentProviderName.CardCaptureOnly); chkAuthorizeNetAim.Checked = store.IsPaymentProviderEnabled(PaymentProviderName.AuthorizeNetAim); chkPayPalDirect.Checked = store.IsPaymentProviderEnabled(PaymentProviderName.PayPalDirectPayment); PayLaterPaymentProvider billMeLaterProvider = new PayLaterPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayLater)); txtPayLaterDisplayText.Text = billMeLaterProvider.DisplayText; txtPayLaterCustomerInstructions.Text = billMeLaterProvider.CustomerInstructions; AuthorizeNetAimProvider authorizeNetAimProvider = new AuthorizeNetAimProvider(store.GetPaymentProviderConfig(PaymentProviderName.AuthorizeNetAim)); chkAuthorizeNetAimTestGateway.Checked = authorizeNetAimProvider.IsTestGateway; chkAuthorizeNetAimTestTransactions.Checked = authorizeNetAimProvider.IsTestTransactions; txtAuthorizeNetAimApiLoginId.Text = authorizeNetAimProvider.ApiLoginId; txtAuthorizeNetAimTransactionKey.Text = authorizeNetAimProvider.TransactionKey; PayPalDirectPaymentProvider payPalDirectPayment = new PayPalDirectPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalDirectPayment)); chkPayPalDirectPaymentIsSandbox.Checked = payPalDirectPayment.IsSandbox; txtPayPalDirectPaymentApiUsername.Text = payPalDirectPayment.ApiUsername; txtPayPalDirectPaymentApiPassword.Text = payPalDirectPayment.ApiPassword; txtPayPalDirectPaymentApiSignature.Text = payPalDirectPayment.ApiSignature; // OFF-SITE chkPayPalStandard.Checked = store.IsPaymentProviderEnabled(PaymentProviderName.PayPalStandard); chkPayPalExpress.Checked = store.IsPaymentProviderEnabled(PaymentProviderName.PayPalExpressCheckout); PayPalStandardProvider payPalStandard = new PayPalStandardProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalStandard)); chkPayPalStandardIsSandbox.Checked = payPalStandard.IsSandbox; rdoPayPalStandardShippingLogic.SelectedValue = payPalStandard.ShippingLogic; txtPayPalStandardEmail.Text = payPalStandard.EmailAddress; PayPalExpressCheckoutPaymentProvider payPalExpressCheckout = new PayPalExpressCheckoutPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalExpressCheckout)); chkPayPalExpressCheckoutIsSandbox.Checked = payPalExpressCheckout.IsSandbox; txtPayPalExpressCheckoutApiUsername.Text = payPalExpressCheckout.ApiUsername; txtPayPalExpressCheckoutApiPassword.Text = payPalExpressCheckout.ApiPassword; txtPayPalExpressCheckoutApiSignature.Text = payPalExpressCheckout.ApiSignature; }
protected void Page_Load(object sender, EventArgs e) { Context.Trace.Write("PayPalIpnHandler called"); Exceptions.LogException(new Exception("PayPalIpnHandler Called with keys: " + Request.Params.AllKeys.ToCsv())); InitializeEntitySpaces(); int?orderId = WA.Parser.ToInt(Request.Params["custom"]); Exceptions.LogException(new Exception("PayPalIpnHandler : Order ID = " + orderId)); Order pendingOrder = Order.GetOrder(orderId.GetValueOrDefault(-1)); if (pendingOrder != null) { Exceptions.LogException(new Exception("PayPalIpnHandler : Found pending order")); DataModel.Store store = pendingOrder.UpToStoreByStoreId; StoreContext storeContext = new StoreContext(Request, store.Id.Value); PayPalStandardProvider payPalStandard = new PayPalStandardProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalStandard)); if (payPalStandard.IsIpnResponse(Request)) { Exceptions.LogException(new Exception("PayPalIpnHandler : Is Valid IPN request, processing IPN variables...")); OrderController orderController = new OrderController(storeContext); CheckoutResult checkoutResult = orderController.CheckoutWithPayPalStandardCheckout(Request); } else { StringBuilder request = new StringBuilder(); foreach (var key in Request.Params.AllKeys) { request.AppendFormat("{0} = {1} <br />{2}", key, Request.Params[key], Environment.NewLine); } Exceptions.LogException(new Exception("PayPalIpnHandler : NOT AN IPN RESPONSE. Request = " + request.ToString())); } } else { //Exceptions.LogException(new Exception("PayPalIpnHandler : pendingOrder IS NULL!")); } }
private void FillListControls() { DataModel.Store store = StoreContext.CurrentStore; checkoutOrderInfo.ReCalculateOrderTotals(); //---- CC Types string creditCardsAccepted = store.GetSetting(StoreSettingNames.AcceptedCreditCards); if (!string.IsNullOrEmpty(creditCardsAccepted)) { string[] cardTypes = creditCardsAccepted.Split(','); ddlCCType.Items.Clear(); foreach (var card in cardTypes) { string[] pair = card.Split('-'); if (pair.Length == 1) { ddlCCType.Items.Add(new ListItem() { Value = pair[0], Text = pair[0] }); } else if (pair.Length == 2) { ddlCCType.Items.Add(new ListItem() { Value = pair[0], Text = pair[1] }); } } ddlCCType.Items.Insert(0, ""); } else { //List<string> cardTypes = new List<string>(WA.Enum<CreditCardType>.GetNames()); //cardTypes.Remove(CreditCardType.UNKNOWN.ToString()); //cardTypes.Remove(CreditCardType.PayPal.ToString()); //ddlCCType.Items.Clear(); //ddlCCType.Items.AddRange(cardTypes.ConvertAll(s => new ListItem() { Text = s, Value = s }).ToArray()); //ddlCCType.Items.Insert(0, ""); msgFlash.InnerHtml = "<ul><li>No credit cards accepted. Please choose a different payment method.</li></ul>"; msgFlash.Visible = true; } //---- CC Expire Year ddlCCExpireYear.Items.Clear(); ddlCCExpireYear.Items.Add(""); int maxYear = DateTime.Now.Year + 12; for (int y = DateTime.Now.Year; y <= maxYear; y++) { ddlCCExpireYear.Items.Add(new ListItem() { Text = y.ToString(), Value = y.ToString() }); } //---- Payment Methods PayLaterPaymentProvider billMeLaterProvider = new PayLaterPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayLater)); liBillMeLater.Visible = billMeLaterProvider.IsEnabled; lblPayLater.InnerHtml = billMeLaterProvider.DisplayText; payLaterInstructions.InnerHtml = billMeLaterProvider.CustomerInstructions.NewlineToBr(); liPayPalExpressCheckoutPaymentMethod.Visible = store.IsPaymentProviderEnabled(PaymentProviderName.PayPalExpressCheckout); liCreditCardCapture.Visible = store.IsPaymentProviderEnabled(PaymentProviderName.CardCaptureOnly) || store.IsPaymentProviderEnabled(PaymentProviderName.AuthorizeNetAim) || store.IsPaymentProviderEnabled(PaymentProviderName.PayPalDirectPayment); }
protected void btnSave_Click(object sender, EventArgs e) { DataModel.Store store = StoreContext.CurrentStore; //PaymentProviderName onSitePaymentProvider = WA.Enum<PaymentProviderName>.TryParseOrDefault(Request.Form["enabledOnSiteProvider"], PaymentProviderName.UNKNOWN); //PaymentProviderName offSitePaymentProvider = WA.Enum<PaymentProviderName>.TryParseOrDefault(Request.Form["enabledOffSiteProvider"], PaymentProviderName.UNKNOWN); if (!onSiteCheckboxes.Exists(x => x.Checked) && !offSiteCheckboxes.Exists(x => x.Checked)) { ShowFlash("<span style='color: Red;'>ERROR - Please choose at least one payment provider.</span>"); return; } if (chkAuthorizeNetAim.Checked && chkPayPalDirect.Checked) { ShowFlash("<span style='color: Red;'>ERROR - Please choose either Authorize.Net OR PayPal Pro (both cannot be selected)</span>"); return; } if (chkPayPalStandard.Checked && chkPayPalExpress.Checked) { ShowFlash("<span style='color: Red;'>ERROR - Please choose either PayPal Standard OR PayPal Express Checkout (both cannot be selected)</span>"); return; } //--- ON-Site Payment Providers PayLaterPaymentProvider billMeLaterPaymentProvider = new PayLaterPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayLater)); billMeLaterPaymentProvider.IsEnabled = chkPayLater.Checked; billMeLaterPaymentProvider.DisplayText = txtPayLaterDisplayText.Text; billMeLaterPaymentProvider.CustomerInstructions = txtPayLaterCustomerInstructions.Text; store.UpdatePaymentProviderConfig(billMeLaterPaymentProvider.GetConfiguration()); CardCaptureOnlyPaymentProvider cardCaptureOnlyPaymentProvider = new CardCaptureOnlyPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.CardCaptureOnly)); cardCaptureOnlyPaymentProvider.IsEnabled = chkCardCaptureOnly.Checked; store.UpdatePaymentProviderConfig(cardCaptureOnlyPaymentProvider.GetConfiguration()); AuthorizeNetAimProvider authorizeNetAimProvider = new AuthorizeNetAimProvider(store.GetPaymentProviderConfig(PaymentProviderName.AuthorizeNetAim)); authorizeNetAimProvider.IsEnabled = chkAuthorizeNetAim.Checked; authorizeNetAimProvider.IsTestGateway = chkAuthorizeNetAimTestGateway.Checked; authorizeNetAimProvider.IsTestTransactions = chkAuthorizeNetAimTestTransactions.Checked; authorizeNetAimProvider.ApiLoginId = txtAuthorizeNetAimApiLoginId.Text; authorizeNetAimProvider.TransactionKey = txtAuthorizeNetAimTransactionKey.Text; store.UpdatePaymentProviderConfig(authorizeNetAimProvider.GetConfiguration()); PayPalDirectPaymentProvider payPalDirectPayment = new PayPalDirectPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalDirectPayment)); payPalDirectPayment.IsEnabled = chkPayPalDirect.Checked; payPalDirectPayment.IsSandbox = chkPayPalDirectPaymentIsSandbox.Checked; payPalDirectPayment.ApiUsername = txtPayPalDirectPaymentApiUsername.Text; payPalDirectPayment.ApiPassword = txtPayPalDirectPaymentApiPassword.Text; payPalDirectPayment.ApiSignature = txtPayPalDirectPaymentApiSignature.Text; store.UpdatePaymentProviderConfig(payPalDirectPayment.GetConfiguration()); //--- OFF-Site Payment Providers PayPalStandardProvider payPalStandard = new PayPalStandardProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalStandard)); payPalStandard.IsEnabled = chkPayPalStandard.Checked; payPalStandard.IsSandbox = chkPayPalStandardIsSandbox.Checked; payPalStandard.ShippingLogic = rdoPayPalStandardShippingLogic.SelectedValue; payPalStandard.EmailAddress = txtPayPalStandardEmail.Text; store.UpdatePaymentProviderConfig(payPalStandard.GetConfiguration()); PayPalExpressCheckoutPaymentProvider payPalExpressCheckout = new PayPalExpressCheckoutPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalExpressCheckout)); payPalExpressCheckout.IsEnabled = chkPayPalExpress.Checked; payPalExpressCheckout.IsSandbox = chkPayPalExpressCheckoutIsSandbox.Checked; payPalExpressCheckout.ApiUsername = txtPayPalExpressCheckoutApiUsername.Text; payPalExpressCheckout.ApiPassword = txtPayPalExpressCheckoutApiPassword.Text; payPalExpressCheckout.ApiSignature = txtPayPalExpressCheckoutApiSignature.Text; store.UpdatePaymentProviderConfig(payPalExpressCheckout.GetConfiguration()); Response.Redirect(StoreUrls.AdminWithFlash(ModuleDefs.Admin.Views.PaymentMethods, "Payment Settings Saved Successfully")); }