Comment redirect l’utilisateur vers paypal avec les parameters de c #

Si j’ai un formulaire simple comme celui-ci, je peux l’utiliser pour redirect l’utilisateur vers PayPal afin d’effectuer le paiement:

<input type="hidden" ... <input type="hidden" name="custom" value="" />

Comme je dois faire quelques actions avant de redirect l’utilisateur vers paypal, j’ai besoin de faire normal
bouton asp qui va faire certaines actions avant de redirect l’utilisateur vers paypal.
Ma question est la suivante: comment puis-je faire cela à partir de c # code-behind?
Il est important que je puisse passer tous les champs masqués obligatoires, tels que ‘ custom ‘, à partir du formulaire ci-dessus.

ASP.Net traditionnel n’autorise pas plusieurs balises de formulaire .

Le code exemple suivant vous permettra d’envoyer le formulaire à PayPal à partir du code suivant.

 protected void BuyButton_Click(object sender, EventArgs e) { ssortingng url = TestMode ? "https://www.sandbox.paypal.com/us/cgi-bin/webscr" : "https://www.paypal.com/us/cgi-bin/webscr"; var builder = new SsortingngBuilder(); builder.Append(url); builder.AppendFormat("?cmd=_xclick&business={0}", HttpUtility.UrlEncode(Email)); builder.Append("&lc=US&no_note=0&currency_code=USD"); builder.AppendFormat("&item_name={0}", HttpUtility.UrlEncode(ItemName)); builder.AppendFormat("&invoice={0}", TransactionId); builder.AppendFormat("&amount={0}", Amount); builder.AppendFormat("&return={0}", HttpUtility.UrlEncode(ReturnUrl)); builder.AppendFormat("&cancel_return={0}", HttpUtility.UrlEncode(CancelUrl)); builder.AppendFormat("&undefined_quantity={0}", Quantity); builder.AppendFormat("&item_number={0}", HttpUtility.UrlEncode(ItemNumber)); Response.Redirect(builder.ToSsortingng()); } 

Voici plus d’informations sur les champs PayPal standard – Variables HTML pour les paiements PayPal standard

Vous pouvez créer un formulaire de manière dynamic et l’afficher à l’aide de C #. Le code ci-dessous le fait –

  protected void Pay() { RemotePost myremotepost = new RemotePost(); myremotepost.Url = "https://www.paypal.com/cgi-bin/webscr"; myremotepost.Add("business", "[email protected]"); myremotepost.Add("cmd", "_xclick"); myremotepost.Add("item_name", "Hot Sauce-12oz Bottle"); myremotepost.Add("amount","5.95"); myremotepost.Add("currency_code","USD"); myremotepost.Post(); } public class RemotePost { private System.Collections.Specialized.NameValueCollection Inputs = new System.Collections.Specialized.NameValueCollection(); public ssortingng Url = ""; public ssortingng Method = "post"; public ssortingng FormName = "form1"; public void Add(ssortingng name, ssortingng value) { Inputs.Add(name, value); } public void Post() { System.Web.HttpContext.Current.Response.Clear(); System.Web.HttpContext.Current.Response.Write(""); System.Web.HttpContext.Current.Response.Write(ssortingng.Format("", FormName)); System.Web.HttpContext.Current.Response.Write(ssortingng.Format("
", FormName, Method, Url)); for (int i = 0; i < Inputs.Keys.Count; i++) { System.Web.HttpContext.Current.Response.Write(string.Format("", Inputs.Keys[i], Inputs[Inputs.Keys[i]])); } System.Web.HttpContext.Current.Response.Write("
"); System.Web.HttpContext.Current.Response.Write(""); System.Web.HttpContext.Current.Response.End(); } }

Entièrement testé et fonctionnel!

Vous pouvez simplement construire une longue URL et y mettre tous ces éléments en tant que parameters d’URL. Puisque vous travaillez avec C #, cependant, je vous recommande d’utiliser l’API. Dans ce cas, je regarderais Express Checkout .