2012-04-18 95 views
0

我在C#中使用webbrowser控件来为我们的桌面应用程序通过网关运行信用卡。捕获webBrowser控制响应

简单地说,我加载页面上的形式的负载:

public Form1() 
{ 
    InitializeComponent(); 

    webBrowser1.Url = new Uri("https://paymentgateway.com/hosted.aspx?" + 
          "Username=dddd" + 
          "&Password=dddd" + 
          "&MerchantKey=5159" + 
          "&BillingAddress1=123 some street" + 
          "&BillingCity=Somewhere" + 
          "&BillingState=SC" + 
          "&BillingZip=39399" + 
          "&CustomerName=me" + 
          "&Amount=392.00" + 
          "&InvNum=123567" + 
          "&AccountNumber=0133333" + 
          "&CustomerId=0199999"); 


} 

(改变出于安全原因,所有引用)

的页面看起来是这样的:

Portal

我的问题是,一旦Process按钮被点击后,我如何获得响应,然后关闭窗体?我需要知道它是否被批准,以及从那一点起的其他信息。

我没有控制按钮,所以我不知道如何捕捉响应。

再次感谢!

回答

2

看来你需要订阅DocumentCompleted事件,并通过文件,DocumentText或DocumentStream处理响应那里。

然后,您会根据输出结果做出适当的反应。例如:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    HtmlDocument document = webBrowser1.Document; 
    //now use any of the methods exposed by HtmlDocument to parse the output 
} 
+0

我在“document”元素中获取所有HTML相关的东西,但是我无法获得响应。例如: - 我打电话给一个服务。在完成的事件中,我需要知道该服务的响应数据(我们可以在TextView选项卡中看到fiddler中的响应)。我怎样才能得到答复的细节。 – Surya 2016-05-18 15:01:54

0

在表单中,您可以创建一个公共方法来获取您可以从调用表单的位置访问的信息。您可以调用此方法在的DialogResult == DialogResult.OK,像这样:

 object your_info; 

     Form1 form1 = new Form1(); 
     if (form1.DialogResult == DialogResult.OK) 
     { 
      your_info = form1.getInfo(); 
     }