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