好的,让我们开始。
我在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网站似乎非常混乱,而且到处都有东西,他们只是不清楚我们需要做什么。
非常感谢任何帮助。
答案 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¤cy_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());
}