首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

|M| 一个网上银行支付的接口,这是一个在页面中做的,怎么把他改为后台执行

2012-01-16 
|M| 一个网上银行支付的接口,这是一个在页面中做的,如何把他改为后台执行formname frm method post

|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( "&currency={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

热点排行