我的支付宝按钮不会链接到贝宝。它只刷新页面,为啥?
Posted
技术标签:
【中文标题】我的支付宝按钮不会链接到贝宝。它只刷新页面,为啥?【英文标题】:My pay pal button will not link to pay pal. It only refreshes page, why?我的支付宝按钮不会链接到贝宝。它只刷新页面,为什么? 【发布时间】:2011-02-12 22:54:45 【问题描述】:我的注册页面中有以下代码可以转到贝宝按钮。但是当我单击按钮时,它只会刷新页面。
他们是我缺少的东西吗?我应该能够在 aspx 页面上包含一个 paypal 按钮吧?
<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" >
<img border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" >
</form>
</td>
</tr>
</table>
</asp:Panel>
</asp:Content>
母版页
<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>
【问题讨论】:
***.com/a/3178668/1395178 【参考方案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" >
<img border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" >
</form>
</asp:Content>
【讨论】:
【参考方案2】:我首选的解决方案是通过 javascript 进行修复。
正如其他答案所述,问题在于 PayPal 按钮的表单嵌入在 .Net 表单中,导致 PayPal 表单无法提交到正确的位置。
要解决这个问题,可以删除 PayPal 表单元素,并且可以使用 Javascript 将 .Net 表单的操作更改为指向 PayPal,然后单击提交。
需要对原代码做如下改动:
输入提交图像已更改为“img”标签 在主图中添加了一个onclick,首先将表单动作更改为指向PayPal,然后提交表单。 已添加“光标:指针”样式以保持按钮的外观生成的 PayPal 按钮代码:
<input type="hidden" name="cmd" value="_s-xclick"
<input type="hidden" name="hosted_button_id" value="xxxxxxxx">
<img style="cursor:pointer;" 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 border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" >
【讨论】:
此方法在尝试通过所见即所得编辑器添加 PayPal 按钮时很有用,因为在这种情况下其他解决方案将不是一个选项。【参考方案3】:<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" />
能够使用图像按钮解决此问题。更多详情见Here
【讨论】:
【参考方案4】:将 </form>
结束标签放在第一个 PayPal 按钮 <form>
行之前。
这对我有用
【讨论】:
【参考方案5】:母版页显示 ContentPlaceHolder1 位于 ASP.NET runat="server" 表单内,因此您无法将 PayPal 表单放置在该区域内。您需要对其进行排列,以使 PayPal 表单不在任何其他表单中。
在这里找到一个可能的解决方案:http://www.codersbarn.com/post/Solution-to-ASPNET-Form---PayPal-Problem.aspx,但我认为您将无法在禁用表单呈现的任何页面上进行任何回发事件。
【讨论】:
它不会影响回发,因为您所做的只是切换表单。通常,这是在提交交易时完成的 :-)【参考方案6】:您是否通过PayPal API integration 示例,this sample might 帮助。
【讨论】:
codersbarn.com/post/… 建议 PayPal SDK 可能不适用于 ASP.NET 2。以上是关于我的支付宝按钮不会链接到贝宝。它只刷新页面,为啥?的主要内容,如果未能解决你的问题,请参考以下文章