如果这是用于 Google Checkout,您应该考虑使用现有的 .Net library for Google Checkout。
虽然上述建议可行,但正确(安全)的做法是documented here。 XML 替代(签名)是here,其中之一允许您以安全的方式直接向 Google 发送 FORM POST。
通过客户端方法提交总是会让您容易受到篡改 - 与仅向 Google 发布基本的 HTML 表单相比(安全方面)几乎没有什么区别。
更新:
...不支持立即购买...
归根结底,有两点让“立即购买”不同于任何其他“购物车”提交:
- 图片
- “立即购买”的单件购买(相对于其他实施的一个或多个)。
看到这个sample code from the .Net Library。它应该给你所有你需要的......
更新 2:
图书馆没有任何“死板”的地方。您不必使用其中的所有内容 - 您甚至可以利用已经为您创建的所有管道。
简单示例,使用 Google Checkout .Net 库实现 BUY NOW
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 的“立即购买”按钮(未更改等)。