private void PrepearePayPalCheckoutParams() { // setup checkout options KeyValueBunch options = new KeyValueBunch(); options["target_site"] = EcommerceSettings.AbsoluteAppPath; // load checkout params CheckoutFormParams fParams = StorefrontHelper.GetCheckoutFormParams(ecPanelRequest.ContractId, ecPanelRequest.InvoiceId, ecPanelRequest.PaymentMethod, options); // register all hidden fields foreach (string keyName in fParams.GetAllKeys()) { Page.ClientScript.RegisterHiddenField(keyName, fParams[keyName]); } // build bootstrap javascript string bootstrapJs = String.Format( "var checkout_form_method = '{0}', checkout_routine_url = '{1}';", fParams.Method, fParams.Action ); // bootstrap checkout form Page.ClientScript.RegisterStartupScript( GetType(), "BootStrapCheckoutForm", bootstrapJs, true ); }
public CheckoutFormParams GetCheckoutFormParams(FormParameters formParams, InvoiceItem[] invoiceLines) { // normalize target site variable string targetSite = formParams["target_site"].EndsWith("/") ? formParams["target_site"] : formParams["target_site"] + "/"; CheckoutFormParams outputParams = new CheckoutFormParams(); // setup service url outputParams.Action = ServiceUrl; outputParams.Method = CheckoutFormParams.POST_METHOD; // copy command outputParams["cmd"] = CART_COMMAND; // workaround to make IPN callbacks work outputParams["rm"] = "2"; // set upload value to indicate a third-party shopping cart outputParams["upload"] = "1"; // set business outputParams["business"] = Business; // set cancel return url outputParams["cancel_return"] = String.Concat(targetSite, "?pid=ecOnlineStore&ContractId=", formParams[FormParameters.CONTRACT]); // set return url outputParams["return"] = targetSite; // set IPN-Endpoint url outputParams["notify_url"] = String.Concat(targetSite, IPN_PROCESSOR_ENDPOINT); // set invoice number outputParams["invoice"] = formParams[FormParameters.INVOICE]; // set contract number outputParams["custom"] = formParams[FormParameters.CONTRACT]; // set invoice currency outputParams["currency_code"] = formParams[FormParameters.CURRENCY]; // set formatted invoice number outputParams["item_name_1"] = String.Format("{0} #{1}", FormParameters.INVOICE, formParams[FormParameters.INVOICE]); // set invoice amount outputParams["amount_1"] = formParams[FormParameters.AMOUNT]; // copy first name AddParameter(formParams, outputParams, FormParameters.FIRST_NAME, "first_name"); // copy last name AddParameter(formParams, outputParams, FormParameters.LAST_NAME, "last_name"); // copy address AddParameter(formParams, outputParams, FormParameters.ADDRESS, "address1"); // copy city AddParameter(formParams, outputParams, FormParameters.CITY, "city"); // copy state AddParameter(formParams, outputParams, FormParameters.STATE, "state"); // copy country AddParameter(formParams, outputParams, FormParameters.COUNTRY, "country"); // copy zip AddParameter(formParams, outputParams, FormParameters.ZIP, "zip"); // copty email AddParameter(formParams, outputParams, FormParameters.EMAIL, "email"); // copy phone number if (formParams[FormParameters.COUNTRY] != "US" && formParams[FormParameters.COUNTRY] != "CA") { // phone numbers outside U.S copy as is outputParams["night_phone_b"] = formParams[FormParameters.PHONE]; } // return whole set of params return(outputParams); }
private void AddParameter(FormParameters inputParams, CheckoutFormParams outputParams, string inputKey, string outputKey) { string formParameter = inputParams[inputKey]; if (formParameter != null) { outputParams[outputKey] = formParameter; } }
public CheckoutFormParams GetCheckoutFormParams(FormParameters inputParams, InvoiceItem[] invoiceLines) { // check invoice currency against 2CO settings if (!CI_ValuesEqual(TCO_Currency, inputParams[FormParameters.CURRENCY])) { throw new Exception(CURRENCY_NOT_MATCH_MSG); } // fill checkout params CheckoutFormParams outputParams = new CheckoutFormParams(); // sets serviced props outputParams.Action = PAYMENT_ROUTINE; outputParams.Method = CheckoutFormParams.POST_METHOD; // copy target_site variable outputParams["target_site"] = inputParams["target_site"]; // copy invoice amount outputParams["sid"] = AccountSID; // copy contract number outputParams["contract_id"] = inputParams[FormParameters.CONTRACT]; // copy invoice number outputParams["merchant_order_id"] = inputParams[FormParameters.INVOICE]; // copy invoice currency outputParams["tco_currency"] = inputParams[FormParameters.CURRENCY]; // copy continue shopping button url // outputParams["return_url"] = ContinueShoppingUrl + "&ContractId=" + inputParams[FormParameters.CONTRACT]; // copy fixed cart option if (FixedCart) { outputParams["fixed"] = "Y"; } // copy pay method (credit card) outputParams["pay_method"] = "CC"; // copy live mode flag if (!LiveMode) { outputParams["demo"] = "Y"; } // copy card holder name outputParams["card_holder_name"] = inputParams[FormParameters.FIRST_NAME] + " " + inputParams[FormParameters.LAST_NAME]; // copy email outputParams["email"] = inputParams[FormParameters.EMAIL]; // copy street address outputParams["street_address"] = inputParams[FormParameters.ADDRESS]; // copy country outputParams["country"] = inputParams[FormParameters.COUNTRY]; // copy city outputParams["city"] = inputParams[FormParameters.CITY]; // copy state & phone if (!CI_ValuesEqual(inputParams[FormParameters.COUNTRY], "US") && !CI_ValuesEqual(inputParams[FormParameters.COUNTRY], "CA")) { // state is outside US & CA outputParams["state"] = OUTSIDE_US_CA; // copy outside US phone as is outputParams["phone"] = inputParams[FormParameters.PHONE]; } else { // copy state outputParams["state"] = inputParams[FormParameters.STATE]; // convert phone to US format outputParams["phone"] = ConvertPhone2US(inputParams[FormParameters.PHONE]); } // copy zip outputParams["zip"] = inputParams[FormParameters.ZIP]; // copy invoice amount outputParams["total"] = inputParams[FormParameters.AMOUNT]; // copy invoice number outputParams["cart_order_id"] = inputParams[FormParameters.INVOICE]; return(outputParams); }