2016-07-08 21 views
0

私のWebアプリケーションに支払いゲートウェイを統合し、その統合にフロントエンドフォームが必要であることが判明しました - アプリでは、支払いのフロントエンドがありません情報を収集して同様の支払いゲートウェイのURLに渡すバックエンドのVB.NETコードの負荷だけです。送信ボタンのないPOSTフォーム

ゲートウェイとしての役割は、フォームの投稿に依存しています。バックエンドコードのみを使用してこれをシミュレートする方法を見つける必要があります。この点に関して私の最大の疑問は、フォーム(POST)ユーザーがボタンをクリックすることなく?

フロントエンドに必要な形式は次のとおりです。

ボタンずにフォームを送信失敗
<form method="post" action="https://mdepayments.epdq.co.uk/ncol/test/orderstandard.asp/orderstandard_utf8.asp" id=form1 name=form1> 

<!-- general parameters: see Form parameters --> 
<input type="hidden" name="PSPID" value=""> 
<input type="hidden" name="ORDERID" value=""> 
<input type="hidden" name="AMOUNT" value=""> 
<input type="hidden" name="CURRENCY" value=""> 
<input type="hidden" name="LANGUAGE" value=""> 
<input type="hidden" name="CN" value=""> 
<input type="hidden" name="EMAIL" value=""> 
<input type="hidden" name="OWNERZIP" value=""> 
<input type="hidden" name="OWNERADDRESS" value=""> 
<input type="hidden" name="OWNERCTY" value=""> 
<input type="hidden" name="OWNERTOWN" value=""> 
<input type="hidden" name="OWNERTELNO" value=""> 

<!-- check before the payment: see Security: Check before the payment --> 
<input type="hidden" name="SHASIGN" value=""> 

<!-- layout information: see Look and feel of the payment page --> 
<input type="hidden" name="TITLE" value=""> 
<input type="hidden" name="BGCOLOR" value=""> 
<input type="hidden" name="TXTCOLOR" value=""> 
<input type="hidden" name="TBLBGCOLOR" value=""> 
<input type="hidden" name="TBLTXTCOLOR" value=""> 
<input type="hidden" name="BUTTONBGCOLOR" value=""> 
<input type="hidden" name="BUTTONTXTCOLOR" value=""> 
<input type="hidden" name="LOGO" value=""> 
<input type="hidden" name="FONTTYPE" value=""> 

<!-- post payment redirection: see Transaction feedback to the customer --> 
<input type="hidden" name="ACCEPTURL" value=""> 
<input type="hidden" name="DECLINEURL" value=""> 
<input type="hidden" name="EXCEPTIONURL" value=""> 
<input type="hidden" name="CANCELURL" value=""> 

<input type="submit" value="" id=submit2 name=submit2> 
</form> 

私はアクションURLにリダイレクト場合は、すべての隠しフィールドがあったら、それはその後、同じ効果を持っているでしょう所定の位置に?

+1

の可能性のある重複した[.NETのVBでPOSTを送信する方法?](http://stackoverflow.com/questions/6108531/how-to-send-a-post-in-net-vb) –

+0

フォームのsubmit関数をjavascriptで呼び出すことができます。 –

+0

私が持っているURLは、POSTの例のようにパラメタを送信しません - 隠しフィールドの値を送信します - パラメータとして送信した場合、文字列ビルダーを作成できますが、フォームのように振る舞う同じ方法で値を渡すには、フィールドが非表示フィールドの場合はフォーム –

答えて

1

System.Net.WebClientを使用するのが最も簡単な方法です。

Dim Url As String = "https://mdepayments.epdq.co.uk/ncol/test/orderstandard.asp" 

Using Client As New WebClient 
    Dim Params As New Specialized.NameValueCollection 

    With Params 
     .Add("PSPID", "") 
     .Add("ORDERID", "") 
     '...... 
    End With 

    Dim Response As Byte() = Client.UploadValues(Url, "POST", Params) 
    Dim ResponseText As String = (New Text.UTF8Encoding).GetString(Response) 
End Using 
+0

'Params'コレクションは隠しフィールドとして機能するので、フォーム全体を削除できますか?それは、フォームがこれを提出すると、基本的にバックグラウンドで起こっていることを意味しますか? –

+1

はいとはい。おそらく、Paramsは変数名が貧弱なことがあります。 Client.UploadValues()は、要求の本文に名前/値のコレクションを送信します。クエリ文字列として送信しません。 –

関連する問題