2010-04-27 8 views
4

J'ai le code suivant dans ma page d'inscription pour aller à un bouton paypal. Mais quand je clique sur le bouton, ça rafraîchit la page.Mon bouton pay pal ne sera pas lié à payer pal. Cela ne fait que rafraîchir la page, pourquoi?

Est-ce que quelque chose me manque? Je devrais être en mesure d'inclure un bouton paypal sur une page aspx droite?

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
    </asp:Content> 
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
    <asp:Panel runat="server" ID="pnlRegisterPage" CssClass="registerPage"> 
     <table> 
      <tr> 
      <td><p>Plain text</p></td> 
      <td> 
       <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
       <input type="hidden" name="cmd" value="_s-xclick"> 
       <input type="hidden" name="hosted_button_id" value="Z8TACKRHQR722"> 
       <table> 
       <tr><td><input type="hidden" name="on0" value="Registration Type">Registration Type</td></tr><tr><td><select name="os0"> 
        <option value="Team">Team $80.00</option> 
        <option value="Individual">Individual $40.00</option> 
       </select> </td></tr> 
       </table> 
       <input type="hidden" name="currency_code" value="USD"> 
       <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> 
       <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> 
       </form> 
      </td> 
     </tr> 
    </table> 

</asp:Panel> 
</asp:Content> 

Maître page

<body> 
    <form id="form1" runat="server"> 
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> 
    </asp:ToolkitScriptManager> 
    <div class="masterbody"> 
     <center> 
      <asp:Image runat="server" ID="imgLogo" ImageUrl="" /></center> 
     <div class="menubar"> 
      <div class="loginview">         
      <asp:LoginView ID="MenuBar" runat="server"> 
       <AnonymousTemplate>                
       </AnonymousTemplate> 
       <LoggedInTemplate> 
       </LoggedInTemplate> 
      </asp:LoginView> 
      </div> 
     </div>   
     <div> 
      <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> 
      </asp:ContentPlaceHolder> 
     </div> 
    </div> 

    <div class="footer"></div> 
    </form>   
</body> 
+0

http://stackoverflow.com/a/3178668/1395178 – DevT

Répondre

6

La page principale montre que ContentPlaceHolder1 se trouve dans l'ASP.NET runat = forme "serveur" de sorte que vous ne serez pas en mesure de placer le formulaire PayPal à l'intérieur cette région. Vous aurez besoin de le faire pour que le formulaire PayPal ne soit pas dans un autre formulaire.

Une solution possible trouvée ici: http://www.codersbarn.com/post/Solution-to-ASPNET-Form---PayPal-Problem.aspx mais je ne pense pas que vous serez en mesure d'avoir des événements de publication sur n'importe quelle page avec le rendu de formulaire désactivé.

+0

Cela n'a aucune incidence sur les publications, car tout ce que vous faites consiste à basculer les formulaires. Habituellement, cela est fait lors de la soumission de la transaction :-) – IrishChieftain

0

Avez-vous lu l'exemple PayPal API integration, this sample might aide.

+0

http://www.codersbarn.com/post/Solution-to-ASPNET-Form---PayPal-Problem.aspx suggère que le SDK PayPal peut ne pas fonctionner avec ASP. NET 2. –

0

Lieu </form> balise de fin juste avant la première ligne bouton <form> PayPal.
Cela a fonctionné pour moi

0
<asp:ImageButton ID="ImageButton1" runat="server" 
    ImageUrl="https://www.paypal.com/en_US/i/btn/btn_buynow_LG.gif" 
    PostBackUrl="https://www.paypal.com/cgi-bin/webscr" /> 

en mesure de résoudre ce problème en utilisant le bouton d'image. Pour plus de détails, voir Here

1

Ma solution préférée est de faire une correction via Javascript. Comme indiqué avec d'autres réponses, le problème réside dans la forme du bouton PayPal intégré dans le formulaire .Net, ce qui empêche le formulaire PayPal de soumettre à l'emplacement correct.

Pour contourner ce problème, l'élément de formulaire PayPal peut être supprimé, et Javascript peut être utilisé pour modifier l'action du formulaire .Net pour pointer vers PayPal, puis le soumettre lors d'un clic.

Les modifications suivantes doivent être apportées au code d'origine:

  • La <forme> balises ont été supprimées
  • La soumission de saisie d'image a changé à un « img » étiquette
  • onclick a été ajouté à l'image principale, en changeant tout d'abord l'action du formulaire pour pointer vers PayPal, et en second lieu en soumettant le formulaire.
  • 'curseur: pointeur' style a été ajouté à garder l'apparence d'un bouton

résultant code du bouton PayPal:

<input type="hidden" name="cmd" value="_s-xclick" 
<input type="hidden" name="hosted_button_id" value="xxxxxxxx"> 
<img style="cursor:pointer;" alt="PayPal – The safer, easier way to pay online." border="0" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_subscribeCC_LG.gif" onclick="document.forms[0].action='https://www.paypal.com/cgi-bin/webscr';document.forms[0].submit();" /> 
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1"> 
+0

Cette méthode est utile lorsque vous essayez d'ajouter le bouton PayPal via un éditeur WYSIWYG, où d'autres solutions ne seraient pas une option dans cette instance. – Radderz

1
Its simple, Just add another ContentPlaceHolder in mater page use this content place holder for paypal button. Like this: 
Master Page 

<body> 
    <form id="form1" runat="server"> 
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> 
    </asp:ToolkitScriptManager> 
    <div class="masterbody"> 
     <center> 
      <asp:Image runat="server" ID="imgLogo" ImageUrl="" /></center> 
     <div class="menubar"> 
      <div class="loginview">         
      <asp:LoginView ID="MenuBar" runat="server"> 
       <AnonymousTemplate>                
       </AnonymousTemplate> 
       <LoggedInTemplate> 
       </LoggedInTemplate> 
      </asp:LoginView> 
      </div> 
     </div>   
     <div> 
      <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> 
      </asp:ContentPlaceHolder> 
     </div> 
    </div> 

    </form>   
<asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server"> 
      </asp:ContentPlaceHolder> 

</body> 


<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
    </asp:Content> 
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
    </asp:Content> 
    <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server"> 
    past paypal button code here: 

       <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
       <input type="hidden" name="cmd" value="_s-xclick"> 
       <input type="hidden" name="hosted_button_id" value="Z8TACKRHQR722"> 
       <table> 
       <tr><td><input type="hidden" name="on0" value="Registration Type">Registration Type</td></tr><tr><td><select name="os0"> 
        <option value="Team">Team $80.00</option> 
        <option value="Individual">Individual $40.00</option> 
       </select> </td></tr> 
       </table> 
       <input type="hidden" name="currency_code" value="USD"> 
       <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> 
       <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> 
       </form> 
    </asp:Content>