<form action="https://demo.bank.com/payment" method="post">
<input name="x_login" type="hidden" runat="server" id="x_login" />
<input name="x_amount" type="hidden" runat="server" id="x_amount" />
<input name="x_fp_sequence" type="hidden" runat="server" id="x_fp_sequence" />
<input name="x_fp_timestamp" type="hidden" runat="server" id="x_fp_timestamp" />
<input name="x_fp_hash" type="hidden" runat="server" id="x_fp_hash" />
<input name="x_show_form" type="hidden" runat="server" id="x_show_form" />
<input name="x_line_item" value="<%# Eval("Desc") %>" type="hidden" />
<input type="submit" name="submit" value="Submit" class="btn_confirm" />
</form>
以上是我用于将数据发布到银行网站进行信用卡处理的示例代码。它工作正常但我需要在代码后面执行此操作。我尝试过WebClient()和HttpClient(),它们都只是通过数据而不是重定向浏览器(除非我没有正确编码)。似乎没有将用户重定向到银行网站。这甚至可能吗?如果是这样,我怎么能做到这一点? PS:对不起,我刚刚将POST数据粘贴到外部URL。
答案 0 :(得分:0)
您必须通过WebClient打开连接并POST值。记住webclient只是一个包装器。为简单起见,我只添加了两个参数,一个是空的(x_login),另一个是值。您必须包含密钥才能进行序列化和发布。
<input name="x_login" type="hidden" runat="server" id="x_login" /> <input name="x_line_item**" value="<%# Eval("Desc") %>" type="hidden" />
using(WebClient client = new WebClient())
{
var reqparm = new System.Collections.Specialized.NameValueCollection();
reqparm.Add("x_login", ""); // You're sending the key with en empty value
reqparm.Add("x_line_item", Eval("Desc") );
byte[] responsebytes = client.UploadValues("https://demo.bank.com/payment", "POST", reqparm);
string responsebody = Encoding.UTF8.GetString(responsebytes);
}