2010-07-23 4 views
0

J'ai un peu d'expérience de l'utilisation de paypal avec un site Web asp.net, mais cette question m'a vraiment perplexe.Comment obtenir passé l'intégration d'un formulaire html pour les boutons paypal asp.net

Racine du problème: Vous ne pouvez pas intégrer le formulaire html pour le bouton paypal dans votre formulaire de page.

Solution d'origine: À l'origine, mon site Web utilisait plusieurs pages aspx, ce qui me permettait d'organiser simplement mes balises de formulaire afin qu'elles ne soient pas intégrées les unes aux autres.

Mon site Web utilise maintenant une page aspx principale qui dessine différentes commandes ascx. Cela signifie que je n'ai pas la possibilité d'organiser les balises de formulaire autour de la page, donc j'ai besoin d'un peu de travail.

NB. J'ai cherché partout des solutions simples mais c'est une jungle là-bas, paypal est un cauchemar. J'ai trouvé quelque chose sur ghost form qui est tout en C#. Pourrait aider ...

Merci d'avance pour toute aide ....

+0

J'ai placé le code de la « forme Ghost » dans ma réponse ci-dessous. En utilisant ceci, vous n'aurez pas besoin d'utiliser un service Web qui est ce qui est offert par le SDK :-) – IrishChieftain

Répondre

1

PayPal soumettre les informations en utilisant leurs API plutôt que de soumettre un formulaire directement à eux. De cette façon, vous pouvez tout conserver dans un seul formulaire et ajouter un peu plus de robustesse autour de l'entrée et de la validation de PayPal.

PayPal: SDKs and Downloads

0

eu ce problème avec un autre fournisseur de paiement également. Vous pouvez soit utiliser leur API, ou vous pouvez contourner par:

  • Faire le bouton de commande une norme ImageButton
  • Courir quelque chose comme ClientScript.RegisterStartupScript() à la sortie HTML et Javascript. Le HTML devrait être le formulaire réel avec tous les champs cachés et l'id propre. Le javascript est un code qui s'exécuterait au chargement de la page et soumettrait la page.

à savoir ClientScript.RegisterStartupScript(Me.GetType(), "PaypalSubmit", "<AllMarkUp><GoesHere><script>And.Javascript</script>", False)

Hope this helps, sinon vous pouvez utiliser l'API de service Web. En adoptant cette approche, vous effectuez une publication, en sortant le formulaire HTML (en dehors du formulaire .NET car il se trouve en bas de la page) et en vous appuyant sur le javascript pour le soumettre.

0

Voici quelque chose qui fonctionnera pour vous. Dans votre code-behind:

// Workaround for PayPal form problem 
CustomForm mainForm = new CustomForm(); 
mainForm.RenderFormTag = false; 

Créer une classe de formulaire personnalisé qui remplace la classe HtmlForm:

public class CustomForm : System.Web.UI.HtmlControls.HtmlForm 
{ 
    protected bool _render; 

    public bool RenderFormTag 
    { 
     get { return _render; } 
     set { _render = value; } 
    } 

    public CustomForm() 
    { 
     //By default, show the form tag 
     _render = true; 
    } 

    protected override void RenderBeginTag(HtmlTextWriter writer) 
    { 
     //Only render the tag when _render is set to true 
     if (_render) 
      base.RenderBeginTag(writer); 
    } 

    protected override void RenderEndTag(HtmlTextWriter writer) 
    { 
     //Only render the tag when _render is set to true 
     if (_render) 
      base.RenderEndTag(writer); 
    } 
}