如何在aspx页面中添加Paypal购买按钮

des*_*mer 4 asp.net paypal

嗨伙计们,我是贝宝的新手.我有一个沙盒测试项目onpaypal并创建了一个项目购买按钮,它是嵌入的HTML代码..现在每当我在aspx页面中插入HTML代码它不会重定向到paypal网站.也许是因为覆盖html代码的表单标签..这里是项目的paypal购买按钮的代码

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="3GWR6RV47BCVE">
<input type="image" src="https://www.paypalobjects.com/en_GB/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.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1">
</form>
Run Code Online (Sandbox Code Playgroud)

现在有人请帮助,我在普通的HTML文件中尝试了这个代码并且它工作但是只要我把它放在aspx上的表单runat服务器标签它重定向页面到它自己..谢谢.

Ben*_*Ben 13

问题是ASP.NET页面定义了一个表单,其中放置了所有控件(特别是如果您使用的是母版页)并且HTML不允许嵌套的表单标记.

有几种方法可以解决此问题,包括使用此处所述的普通ASP图像按钮.

您还可以使用此博客中描述的锚链接.但是,如作者所述,用户可以保存页面源,编辑它(例如更改价格),然后重新加载它并单击链接.

事实上,任何将信息存储在网页源中的方法都有可能被滥用.因此,我喜欢的方法是使用ASP图像按钮和锚链接方法的组合,但要在按钮单击事件中的服务器上实现此方法:

1)在ASP页面中定义一个图像按钮,您可以在其中输入PayPal按钮.您可以将ImageURL设置为PayPal提供的首选按钮类型.

<asp:ImageButton
    ID="PayPalBtn"
    runat="server"
    ImageUrl="https://www.paypalobjects.com/en_GB/i/btn/btn_buynow_LG.gif"
    onclick="PayPalBtn_Click" />
Run Code Online (Sandbox Code Playgroud)

2)使用按钮的Click事件在服务器端生成所需信息,然后将浏览器重定向到PayPal站点.

protected void PayPalBtn_Click(object sender, ImageClickEventArgs e)
{
    string business = "<insert your paypal email or merchant id here>";
    string itemName = "<insert the item name here>";
    double itemAmount = 123.451;
    string currencyCode = "GBP";

    StringBuilder ppHref = new StringBuilder();

    ppHref.Append("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick");
    ppHref.Append("&business=" + business);
    ppHref.Append("&item_name=" + itemName);
    ppHref.Append("&amount=" + itemAmount.ToString("#.00"));
    ppHref.Append("&currency_code=" + currencyCode);

    Response.Redirect(ppHref.ToString(), true);
}
Run Code Online (Sandbox Code Playgroud)

免责声明:用户可能仍然可能滥用这种方法(虽然现在有点困难),因此最好在发货前检查已支付的费用.