使用PayPal创建按钮

时间:2014-07-01 11:44:53

标签: c# asp.net paypal

好的,让我们开始。

我在ASP.NET网络应用程序中工作,我正在尝试为paypal付款创建简单的“立即付款”按钮。

所以我得到了这个链接,说我可以通过复制和粘贴代码来创建JavaScript按钮。

http://paypal.github.io/JavaScriptButtons/

所以我下载了javascript文件,将其包含在ASPX页面上并开始编码:

这是ASPX页面中的div,它将显示动态创建表单代码:

<div id="divPagamentoPaypal" runat="server" class="msgbox_container" style="text-align: left;">    
    <div class="msgbox_title">
        Pagamento de PayPal
    </div>               
    <div id="divPayPal" style="align-content:center;" runat="server">
        <asp:Label ID="lblPayPalButton" runat="server" Text="qewqeqweq"></asp:Label>
    </div>
</div>

这是代码隐藏:

    string form = "<form action='https://www.paypal.com/cgi-bin/webscr' method='post' target='_top'>";
    form += "<INPUT TYPE='hidden' NAME='return' value='" + BackUrl + "'>";
    form += "<input type='hidden' name='cmd' value='_s-xclick'>";

    form += "<script src='paypal-button.min.js?merchant=" + Settings.Current.MerchantID + "'" +
                    "data-button='buynow'" +
                    "data-name='" + AccaoParaConsulta.ObterAccao(this.DataSource, p.IdAccao).NomeAccao + "'" +
                    "data-amount='" + p.Valor.ToString("#.00") + "'" +
                    "async" +
                    "></script>";
    form += "<input type='image' src='https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif' border='0' name='submit' alt='PayPal - The safer, easier way to pay online!'/>";
    form += "</form>";
    lblPayPalButton.Text = form;

毋庸置疑,这不起作用。

我需要做的就是创建按钮,仅限现在付款,它们需要由来自SQL数据库的数据创建。

我真的认为我这样做是错的,PayPal网站似乎非常混乱,而且到处都有东西,他们只是不清楚我们需要做什么。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

传统的ASP.Net不允许使用多个表单标记。 这不是ASP.Net MVC中的问题。

您希望将Label替换为Button控件,并使用查询字符串中的值重定向到PayPal。

例如,

protected void BuyButton_Click(object sender, EventArgs e)
{
   string url = TestMode ? 
      "https://www.sandbox.paypal.com/us/cgi-bin/webscr" : 
      "https://www.paypal.com/us/cgi-bin/webscr";

   var builder = new StringBuilder();
   builder.Append(url);
   builder.AppendFormat("?cmd=_xclick&business={0}", HttpUtility.UrlEncode(Email));
   builder.Append("&lc=US&no_note=0&currency_code=USD");
   builder.AppendFormat("&item_name={0}", HttpUtility.UrlEncode(ItemName));
   builder.AppendFormat("&invoice={0}", TransactionId);
   builder.AppendFormat("&amount={0}", Amount);
   builder.AppendFormat("&return={0}", HttpUtility.UrlEncode(ReturnUrl));
   builder.AppendFormat("&cancel_return={0}", HttpUtility.UrlEncode(CancelUrl));
   builder.AppendFormat("&undefined_quantity={0}", Quantity);
   builder.AppendFormat("&item_number={0}", HttpUtility.UrlEncode(ItemNumber));

   Response.Redirect(builder.ToString());
}