我有一个Google Checkout“立即购买”按钮,我想添加动态创建的信息,以便在点击时发送。我该怎么做?
按钮的html是:
<form action="https://sandbox.google.com/checkout/..." id="Form1" method="post" name="..." target="_top">
<input name="item_name_1" type="hidden" value="..." />
...
<input alt="" src="https://sandbox.google.com/checkout/buttons/buy.gif?merchant_id=..." type="image" />
</form>
那我该添加什么? (如果可能的话,我想通过ASP.Net代码来实现。)
我尝试添加onclick="Button1_Click"
,但它不起作用。
答案 0 :(得分:1)
ASP是服务器端脚本,因此在加载页面后无法启动它。 onlcick属性用于启动javascript。 两种解决方法:
答案 1 :(得分:1)
如果是Google Checkout,则应考虑使用现有的.Net library for Google Checkout。
虽然上述建议可行,但正确(安全)的方式是documented here。 XML备选方案(签名)为here,其中一个允许您以安全的方式直接向Google发送FORM POST。
通过客户端方法提交的内容总是会让您容易受到篡改 - 与向Google发布基本HTML表单相比,它(安全方面)没什么区别。
<强>更新强>:
... 不支持立即购买 ...
在一天结束时,有两件事使“现在购买”与其他任何“购物车”提交不同:
见sample code from the .Net Library。它应该给你所需要的一切......
更新2 :
图书馆没有任何“僵化”。您不必使用其中的所有内容 - 您甚至可以利用已经为您创建的所有管道。
Web窗体代码(aspx):
<p>Some ASP.net button:<br />
<asp:Button ID="Button1" runat="server" Text="BUY ME NOW" onclick="Button1_Click" /><br />
An ASP.NET Image Button using BUY NOW Image:<br />
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="https://checkout.google.com/buttons/buy.gif?merchant_id=[USE YOUR OWN MERCHANT ID]&w=117&h=48&style=white&variant=text&loc=en_US" onclick="ImageButton1_Click" />
此时这是您在浏览器中看到的内容:
代码(内联或代码隐藏):
using GCheckout.Checkout;
using GCheckout.Util;
....
protected void Button1_Click(object sender, EventArgs e)
{
doSomething();
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
doSomething();
}
private void doSomething()
{
/**
* Use the correct Merchant ID and Key based on GCheckout.EnvironmentType
* You cannot mix/match sandbox and production id or key
*/
CheckoutShoppingCartRequest Req = new CheckoutShoppingCartRequest("your_production_MID", "your_production_KEY", GCheckout.EnvironmentType.Production, "USD", 20);
/**
* Everything from this point is a copy and paste
* from .net libary sample code
* http://code.google.com/p/google-checkout-dotnet-sample-code/source/browse/examples/post_cart/simple.aspx
*/
Req.AddItem("Mars bar", "Packed with peanuts", 0.75m, 2);
//lets make sure we can add 2 different flat rate shipping amounts
Req.AddFlatRateShippingMethod("UPS Ground", 5);
//Add a rule to tax all items at 7.5% for Ohio
Req.AddStateTaxRule("OH", 7.5, true);
GCheckoutResponse Resp = Req.Send();
if (Resp.IsGood)
{
Response.Redirect(Resp.RedirectUrl, true);
}
else
{
Response.Write("Resp.ResponseXml = " + Resp.ResponseXml + "<br>");
Response.Write("Resp.RedirectUrl = " + Resp.RedirectUrl + "<br>");
Response.Write("Resp.IsGood = " + Resp.IsGood + "<br>");
Response.Write("Resp.ErrorMessage = " + Resp.ErrorMessage + "<br>");
}
}
以上只是示例代码,以说明您可以使用.Net库做些什么。 要遵守Google Checkout实施政策,请使用ImageButton实施 - 它确保您使用Google的“立即购买”按钮(未更改等)。