// # Create Personal Account public CreateAccountRequest CreatePersonalAccount() { // Create the CreateAccountRequest object CreateAccountRequest createAccountRequest = CreateAccount(); // Used for configuration settings for the web flow CreateAccountWebOptionsType createAccountWebOptions = new CreateAccountWebOptionsType(); // The URL to which the business redirects the PayPal user for PayPal account setup completion createAccountWebOptions.returnUrl = "http://localhost"; createAccountRequest.createAccountWebOptions = createAccountWebOptions; CreateAccountAPIOperations(createAccountRequest); return(createAccountRequest); }
private void CreateAccount(HttpContext context) { NameValueCollection parameters = context.Request.Params; NameType nameOnCard = new NameType(parameters["firstName"], parameters["lastName"]); if (parameters["salutation"] != "") { nameOnCard.salutation = parameters["salutation"]; } if (parameters["middleName"] != "") { nameOnCard.middleName = parameters["middleName"]; } if (parameters["suffix"] != "") { nameOnCard.suffix = parameters["suffix"]; } AddressType address = new AddressType(parameters["line1"], parameters["countryCode"]); if (parameters["line2"] != "") { address.line2 = parameters["line2"]; } if (parameters["city"] != "") { address.city = parameters["city"]; } if (parameters["state"] != "") { address.state = parameters["state"]; } if (parameters["postalCode"] != "") { address.postalCode = parameters["postalCode"]; } CreateAccountRequest req = new CreateAccountRequest(new RequestEnvelope(), nameOnCard, address, parameters["preferredLanguageCode"]); // set optional parameters if (parameters["contactPhoneNumber"] != "") { req.contactPhoneNumber = parameters["contactPhoneNumber"]; } if (parameters["homePhoneNumber"] != "") { req.homePhoneNumber = parameters["homePhoneNumber"]; } if (parameters["mobilePhoneNumber"] != "") { req.mobilePhoneNumber = parameters["mobilePhoneNumber"]; } if (parameters["emailAddress"] != "") { req.emailAddress = parameters["emailAddress"]; } if (parameters["currencyCode"] != "") { req.currencyCode = parameters["currencyCode"]; } req.citizenshipCountryCode = parameters["citizenshipCountryCode"]; req.registrationType = parameters["registrationType"]; if (parameters["returnUrl"] != "" || parameters["returnUrlDescription"] != "" || parameters["showAddCreditCard"] != "" || parameters["showMobileConfirm"] != "" || parameters["useMiniBrowser"] != "") { CreateAccountWebOptionsType webOptions = new CreateAccountWebOptionsType(); req.createAccountWebOptions = webOptions; if (parameters["returnUrl"] != "") { webOptions.returnUrl = parameters["returnUrl"]; } if (parameters["returnUrlDescription"] != "") { webOptions.returnUrlDescription = parameters["returnUrlDescription"]; } if (parameters["showAddCreditCard"] != "") { webOptions.showAddCreditCard = Boolean.Parse(parameters["showAddCreditCard"]); } if (parameters["showMobileConfirm"] != "") { webOptions.showMobileConfirm = Boolean.Parse(parameters["showMobileConfirm"]); } if (parameters["useMiniBrowser"] != "") { webOptions.useMiniBrowser = Boolean.Parse(parameters["useMiniBrowser"]); } } // All set. Fire the request AdaptiveAccountsService service = new AdaptiveAccountsService(); CreateAccountResponse resp = null; try { resp = service.CreateAccount(req); } catch (System.Exception e) { context.Response.Write(e.Message); } // Display response values. Dictionary <string, string> keyResponseParams = new Dictionary <string, string>(); string redirectUrl = null; if (!(resp.responseEnvelope.ack == AckCode.FAILURE) && !(resp.responseEnvelope.ack == AckCode.FAILUREWITHWARNING)) { redirectUrl = ConfigurationManager.AppSettings["PAYPAL_REDIRECT_URL"] + resp.redirectURL; keyResponseParams.Add("Account Id", resp.accountId); keyResponseParams.Add("Create account key", resp.createAccountKey); keyResponseParams.Add("Execution status", resp.execStatus.ToString()); } displayResponse(context, "CreateAccount", keyResponseParams, service.getLastRequest(), service.getLastResponse(), resp.error, redirectUrl); }
private void CreateAccount(HttpContext context) { // #CreateAccount API // The CreateAccount API operation enables you to create a PayPal account on behalf of a third party. NameValueCollection parameters = context.Request.Params; // The name of the person for whom the PayPal account is // created, which // contains // // * `FirstName` - First name of the account or payment card // holder. // * `LastName` - Last name of the account or payment card // holder. NameType name = new NameType(parameters["firstName"], parameters["lastName"]); //(Optional) A salutation for the account or payment card holder. if (parameters["salutation"] != string.Empty) { name.salutation = parameters["salutation"]; } //Optional) Middle name of the account or payment card holder. if (parameters["middleName"] != string.Empty) { name.middleName = parameters["middleName"]; } //(Optional) A suffix for the account or payment card holder. if (parameters["suffix"] != string.Empty) { name.suffix = parameters["suffix"]; } // Address of the person for whom the PayPal account is created AddressType address = new AddressType(parameters["line1"], parameters["countryCode"]); //(Optional) Second line of the address. // Note: This field is required for Brazilian addresses. if (parameters["line2"] != string.Empty) { address.line2 = parameters["line2"]; } //(Required) City name if (parameters["city"] != string.Empty) { address.city = parameters["city"]; } //(Optional) State code. if (parameters["state"] != string.Empty) { address.state = parameters["state"]; } //(Optional) Zip or postal code. if (parameters["postalCode"] != string.Empty) { address.postalCode = parameters["postalCode"]; } // Instantiating createAccountRequest with mandatory arguments: // // * `requestenvelope` - Information common to each API // operation, such // as the language in which an error message is returned. // * `name` - The name of the person for whom the PayPal account // is // created. // * `address` - The address to be associated with the PayPal // account. // * `preferredlanguagecode`- The code indicating the language // to be // associated with the account. // What value is allowed depends on the country code passed in // the // countryCode parameter for the address. // For Example: United States (US) - en_US CreateAccountRequest req = new CreateAccountRequest(new RequestEnvelope(), name, address, parameters["preferredLanguageCode"]); // The type of account to create. Allowed values: // // *Personal – Personal account // *Premier – Premier account // *Business – Business account if (parameters["accountType"] != string.Empty) { req.accountType = parameters["accountType"]; } // Phone Number to be associated with the account. if (parameters["contactPhoneNumber"] != string.Empty) { req.contactPhoneNumber = parameters["contactPhoneNumber"]; } if (parameters["homePhoneNumber"] != string.Empty) { req.homePhoneNumber = parameters["homePhoneNumber"]; } if (parameters["mobilePhoneNumber"] != string.Empty) { req.mobilePhoneNumber = parameters["mobilePhoneNumber"]; } // Email address of person for whom the PayPal account is // created. if (parameters["emailAddress"] != string.Empty) { req.emailAddress = parameters["emailAddress"]; } // The three letter code for the currency to be associated with // the account if (parameters["currencyCode"] != string.Empty) { req.currencyCode = parameters["currencyCode"]; } // The code of the country to be associated with the account. req.citizenshipCountryCode = parameters["citizenshipCountryCode"]; // This attribute determines whether a key or a URL is returned // for the redirect URL. Allowable value(s) currently // supported:`Web` - Returns a URL req.registrationType = parameters["registrationType"]; // The URL to post instant payment notification (IPN) messages // to // regarding account creation. This URL supersedes the IPN // notification // URL set in the merchant profile. if (parameters["notificationUrl"] != string.Empty) { req.notificationURL = parameters["notificationUrl"]; } if (parameters["returnUrl"] != string.Empty || parameters["returnUrlDescription"] != string.Empty || parameters["showAddCreditCard"] != string.Empty || parameters["showMobileConfirm"] != string.Empty || parameters["useMiniBrowser"] != string.Empty) { // Used for configuration settings for the web flow CreateAccountWebOptionsType webOptions = new CreateAccountWebOptionsType(); req.createAccountWebOptions = webOptions; // (Required) The URL to which you want the account holder to return when he or she finishes account registration. // This URL appears as a link on the final page of the PayPal account registration flow. // The text of this link is the text passed in the returnUrlDescription request parameter (below). if (parameters["returnUrl"] != string.Empty) { webOptions.returnUrl = parameters["returnUrl"]; } //(Optional) A description of the return URL. if (parameters["returnUrlDescription"] != string.Empty) { webOptions.returnUrlDescription = parameters["returnUrlDescription"]; } // (Optional) Defines whether the "add credit card" option is included in the PayPal account registration flow. // true - Show the option (default) // false - Do not show the option if (parameters["showAddCreditCard"] != string.Empty) { webOptions.showAddCreditCard = Convert.ToBoolean(parameters["showAddCreditCard"]); } // (Optional) Defines whether the "mobile confirmation" option is included in the PayPal account registration flow. // true - Show the option // false - Do not show the option (default) if (parameters["showMobileConfirm"] != string.Empty) { webOptions.showMobileConfirm = Convert.ToBoolean(parameters["showMobileConfirm"]); } // (Optional) Defines whether to use the minibrowser account registration flow or the traditional account registration flow. // true - Use the minibrowser flow // false - Use the traditional flow (default) if (parameters["useMiniBrowser"] != string.Empty) { webOptions.useMiniBrowser = Convert.ToBoolean(parameters["useMiniBrowser"]); } } // Create the AdaptiveAccounts service object to make the API call AdaptiveAccountsService service = null; CreateAccountResponse resp = null; try { // Configuration map containing signature credentials and other required configuration. // For a full list of configuration parameters refer in wiki page // (https://github.com/paypal/sdk-core-dotnet/wiki/SDK-Configuration-Parameters) Dictionary <string, string> configurationMap = Configuration.GetAcctAndConfig(); // Creating service wrapper object to make an API call and loading // configuration map for your credentials and endpoint service = new AdaptiveAccountsService(configurationMap); // # API call // Invoke the CreateAccount method in service wrapper object resp = service.CreateAccount(req); } catch (System.Exception e) { context.Response.Write(e.Message); return; } // Display response values. Dictionary <string, string> keyResponseParams = new Dictionary <string, string>(); string redirectUrl = null; if (!(resp.responseEnvelope.ack == AckCode.FAILURE) && !(resp.responseEnvelope.ack == AckCode.FAILUREWITHWARNING)) { redirectUrl = resp.redirectURL; keyResponseParams.Add("Account Id", resp.accountId); keyResponseParams.Add("Create account key", resp.createAccountKey); keyResponseParams.Add("Execution status", resp.execStatus.ToString()); //Selenium Test Case keyResponseParams.Add("Acknowledgement", resp.responseEnvelope.ack.ToString()); keyResponseParams.Add("Redirect To PayPal", resp.redirectURL); } displayResponse(context, "CreateAccount", keyResponseParams, service.getLastRequest(), service.getLastResponse(), resp.error, redirectUrl); }