|M| 一个网上银行支付的接口,这是一个在页面中做的,如何把他改为后台执行
<form name= "frm " method= "post " action= "https://www.99bill.com/webapp/receiveMerchantInfoAction.do ">
<input id= "merchant_id " type= "hidden " runat= "server ">
<input id= "orderid " type= "hidden " runat= "server ">
<input id= "amount " type= "hidden " runat= "server ">
<input id= "currency " type= "hidden " runat= "server ">
<input id= "isSupportDES " type= "hidden " runat= "server ">
<input id= "mac " type= "hidden " runat= "server ">
<input id= "merchant_url " type= "hidden " runat= "server ">
<input id= "pname " type= "hidden " runat= "server ">
<input id= "commodity_info " type= "hidden " runat= "server ">
<input id= "merchant_param " type= "hidden " runat= "server ">
<input id= "pemail " type= "hidden " runat= "server ">
<input id= "pid " type= "hidden " runat= "server ">
<input name= "payby99bill " type= "image " src= "http://www.99bill.com/download/pay_button/99bill_buy_b.gif "
value= "快钱支付 ">
</form>
就像上面的这些东西
我如何在btnPay_OnClick()
这里来写这些东西而不要上面的那些html控件
也就是说用一个asp:Button和后台代码来代替上面的所有内容
谢谢
[解决办法]
以POST方式提交
(http://www.z6688.com/info/35003-1.htm)
string url = "网址 ";
httpwebrequest req = (httpwebrequest)webrequest.create(url);
string s = "要提交的数据 ";
byte[] requestbytes = system.text.encoding.ascii.getbytes (logininfo);
req.method = "post ";
req.contenttype = "application/x-www-form-urlencoded ";
req.contentlength = requestbytes.length;
stream requeststream = req.getrequeststream();
requeststream.write(requestbytes,0,requestbytes.length);
requeststream.close();
httpwebresponse res = (httpwebresponse)req.getresponse();
streamreader sr = new streamreader(res.getresponsestream(), system.text.encoding.default);
string backstr = sr.readtoend();
response.write(line);
sr.close();
res.close();
[解决办法]
先mark
[解决办法]
先mark
[解决办法]
response.write输出那些HTML控件
[解决办法]
那个例子我也是在网上搜的
再看看这个
string param = "hl=zh-CN&newwindow=1 ";是参数
http://www.wybcom.cn/article.asp?id=178
POST 方式。 POST 方式通过在页面内容中填写参数的方法来完成数据的提交,参数的格式和 GET 方式一样,是类似于 hl=zh-CN&newwindow=1 这样的结构。程序代码如下:
string param = "hl=zh-CN&newwindow=1 ";
byte[] bs = Encoding.ASCII.GetBytes(param);
HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "http://www.google.com/intl/zh-CN/ " );
req.Method = "POST ";
req.ContentType = "application/x-www-form-urlencoded ";
req.ContentLength = bs.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(bs, 0, bs.Length);
}
using (WebResponse wr = req.GetResponse())
{
//在这里对接收到的页面内容进行处理
}
[解决办法]
再把ls的方法封装成一个函数
[解决办法]
看看paypal的,实现方式是一样的:
public class Paypal : IPay
{
public Paypal()
{ }
private const string POSTURL = "https://www.paypal.com/cgi-bin/webscr? ";
private string _cmd = "_xclick ";
/// <summary>
/// 命令
/// </summary>
public string Cmd
{
get { return _cmd; }
set { _cmd = value; }
}
private string _business = string.Empty;
/// <summary>
/// 收款人的email地址
/// </summary>
public string Business
{
get { return _business; }
set { _business = value; }
}
private string _item_name = string.Empty;
/// <summary>
/// 收款项的名称(MyeGlobal Order [OrderId])
/// </summary>
public string Item_name
{
get { return _item_name; }
set { _item_name = value; }
}
private decimal _amount = decimal.Zero;
/// <summary>
/// 金额
/// </summary>
public decimal Amount
{
get { return _amount; }
set { _amount = value; }
}
private string _currency = "USD ";
/// <summary>
/// 货币
/// </summary>
public string Currency
{
get { return _currency; }
set { _currency = value; }
}
private string _return = " ";
/// <summary>
/// 付款成功后返回的url
/// </summary>
public string ReturnUrl
{
get { return _return; }
set { _return = value; }
}
private string _cancel_return = " ";
/// <summary>
/// 付款不成功后返回的url
/// </summary>
public string CancelReturnUrl
{
get { return _cancel_return; }
set { _cancel_return = value; }
}
#region IPay Members
public string GetSubmitUrl()
{
StringBuilder sb = new StringBuilder();
sb.Append(POSTURL);
sb.AppendFormat( "cmd={0} ",_cmd);
sb.AppendFormat( "&business={0} ", _business);
sb.AppendFormat( "&item_name={0} ",_item_name);
sb.AppendFormat( "&amount={0} ", String.Format( "{0:0.00} ",_amount));
sb.AppendFormat( "¤cy={0} ", _currency);
sb.AppendFormat( "&return={0} ", _return);
if (_cancel_return != string.Empty)
sb.AppendFormat( "&cancel_return={0} ", _cancel_return);
return sb.ToString();
}
#endregion
}
调用方式:
Paypal pay = new Paypal();
// 设置好所有属性。
弹出付钱的页面
Response.Redirect(pay.GetSubmitUrl());
GetSubmitUrl