我在ASP.net(C#)中创建了2个页面。第一个(称为shoppingcart.asp)有一个立即购买按钮。第二个(称为processpay.asp)只是等待谷歌结账向其发送HTTP请求以处理付款。我想做的是向google checkout发送一个post语句,其中包含一些我希望传递给processpay.asp的变量(即clientid = 3& itemid = 10),但我不知道如何格式化POST HTTP声明或我必须在Google Checkout中更改哪些设置才能使其正常运行。
非常感谢任何想法。
答案 0 :(得分:2)
Google Checkout提供了示例代码和有关如何将其与任何.NET应用程序集成的教程:
请务必查看标题为“Integrating the Sample Code into your Web Application”的部分。
但是,如果您更喜欢使用服务器端POST,则可能需要检查以下提交HTTP帖子的方法并将响应作为字符串返回:
using System.Net;
string HttpPost (string parameters)
{
WebRequest webRequest = WebRequest.Create("http://checkout.google.com/buttons/checkout.gif?merchant_id=1234567890");
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(parameters);
Stream os = null;
try
{
webRequest.ContentLength = bytes.Length;
os = webRequest.GetRequestStream();
os.Write(bytes, 0, bytes.Length);
}
catch (WebException e)
{
// handle e.Message
}
finally
{
if (os != null)
{
os.Close();
}
}
try
{
// get the response
WebResponse webResponse = webRequest.GetResponse();
if (webResponse == null)
{
return null;
}
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
return sr.ReadToEnd().Trim();
}
catch (WebException e)
{
// handle e.Message
}
return null;
}
参数需要以下列形式传递:name1=value1&name2=value2
答案 1 :(得分:0)
代码可能最终看起来像这样:
GCheckout.Checkout.CheckoutShoppingCartRequest oneCheckoutShoppingCartRequest =
GCheckoutButton1.CreateRequest();
oneCheckoutShoppingCartRequest.MerchantPrivateData = "clientid=3";
GCheckout.Checkout.ShoppingCartItem oneShoppingCartItem =
new GCheckout.Checkout.ShoppingCartItem();
oneShoppingCartItem.Name = "YourProductDisplayName";
oneShoppingCartItem.MerchantItemID = "10";
oneCheckoutShoppingCartRequest.AddItem(oneShoppingCartItem);
答案 2 :(得分:0)
昨天我使用http://www.codeproject.com/KB/aspnet/ASP_NETRedirectAndPost.aspx发送帖子数据,效果很好