我的支付宝按钮不会链接到贝宝。它只刷新页面,为啥?

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】:

&lt;/form&gt; 结束标签放在第一个 PayPal 按钮 &lt;form&gt; 行之前。 这对我有用

【讨论】:

【参考方案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。

以上是关于我的支付宝按钮不会链接到贝宝。它只刷新页面,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

PHP - 贝宝支付交易

WHMCS - 如何获取到贝宝的付款链接

贝宝支付流链接错误

paypal 支付网关链接,用于直接支付

无法登录到贝宝沙盒网站(贝宝地狱)

如何从购物车中获取多个产品到贝宝付款