C# ASP.NET核心应用程序中Alpha Bank的签出端点
我正在ASP.NET Core 2.0中创建一个应用程序,需要创建一个希腊银行提供的结账端点。(阿尔法银行) 他们在ASP.NET Web表单应用程序中提供了必要的实现,我必须将必要的信息发布到他们的端点。 问题是,我正在ASP.NET核心应用程序中重新创建相同的表单帖子,但我无法让它正常工作 ASP.NET Web表单实现(工作正常) 表格C# ASP.NET核心应用程序中Alpha Bank的签出端点,c#,asp.net-core,webforms,asp.net-core-mvc,asp.net-core-2.0,C#,Asp.net Core,Webforms,Asp.net Core Mvc,Asp.net Core 2.0,我正在ASP.NET Core 2.0中创建一个应用程序,需要创建一个希腊银行提供的结账端点。(阿尔法银行) 他们在ASP.NET Web表单应用程序中提供了必要的实现,我必须将必要的信息发布到他们的端点。 问题是,我正在ASP.NET核心应用程序中重新创建相同的表单帖子,但我无法让它正常工作 ASP.NET Web表单实现(工作正常) 表格 <form method="post" id='form_digest' runat="server" > <div> &
<form method="post" id='form_digest' runat="server" >
<div>
<asp:Label ID="Label1" runat="server" Height="45px" Style="font-weight: bold; font-size: 30px;
border-top-style: none; border-right-style: none; border-left-style: none; border-bottom-style: none"
Text="Alpha Test Shop" Width="306px"></asp:Label><br />
<br />
<table>
<tr>
<td style="width: 198px">
MerchantID</td>
<td style="width: 330px">
<asp:TextBox ID="mid" runat="server" Width="124px">123</asp:TextBox></td>
</tr>
<tr>
<td style="width: 198px">
Order ID</td>
<td style="width: 330px">
<asp:TextBox ID="orderid" runat="server" Width="138px">123</asp:TextBox></td>
</tr>
<tr>
<td style="width: 198px">
Order Desc</td>
<td style="width: 330px">
<asp:TextBox ID="orderDesc" runat="server" Width="153px">OrderDesc</asp:TextBox></td>
</tr>
<tr>
<td style="width: 198px">
Ποσό</td>
<td style="width: 330px">
<asp:TextBox ID="orderAmount" runat="server" Width="129px">0,2</asp:TextBox></td>
</tr>
<tr>
<td style="width: 198px">
Νόμισμα</td>
<td style="width: 330px">
<asp:DropDownList ID="currency" runat="server">
<asp:ListItem>EUR</asp:ListItem>
</asp:DropDownList></td>
</tr>
<tr>
<td style="width: 198px">
Τρόπος Πληρωμής</td>
<td style="width: 330px">
<asp:DropDownList ID="payMethod" runat="server">
<asp:ListItem Value="">No pre Selection</asp:ListItem>
<asp:ListItem Value="visa">VISA</asp:ListItem>
<asp:ListItem Value="visaElectron">Visa Electron</asp:ListItem>
<asp:ListItem Value="mastercard">MasterCard</asp:ListItem>
<asp:ListItem Value="maestro">Maestro</asp:ListItem>
</asp:DropDownList></td>
</tr>
<tr>
<td style="width: 198px">
Σελίδα Confirmation</td>
<td style="width: 330px">
<asp:TextBox ID="confirmUrl" runat="server" Width="247px">success.aspx</asp:TextBox></td>
</tr>
<tr>
<td style="width: 198px">
Σελίδα
Cancel</td>
<td style="width: 330px">
<asp:TextBox ID="cancelUrl" runat="server" Width="247px">fail.aspx</asp:TextBox></td>
</tr>
<tr>
<td style="width: 198px">
Digest</td>
<td style="width: 330px">
<asp:TextBox ID="digest" runat="server" Width="247px">raJKiCtB1Eupp/YmSKlAlWd+kT0=</asp:TextBox></td>
</tr>
</table>
<br />
<br />
<asp:Button ID="Button2" runat="server" Text="Submit" Width="113px" /><br />
<br />
<br />
</div>
</form>
<form method="post" id='form_digest'>
<div class="col-md-12">
<div class="row margin-top-10">
<input id="mid" name="mid" value="123" class="form-control" />
</div>
<div class="row margin-top-10">
<input id="orderid" name="orderid" value="123" class="form-control" />
</div>
<div class="row margin-top-10">
<input id="orderDesc" name="orderDesc" value="OrderDesc" class="form-control" readonly />
</div>
<div class="row margin-top-10">
<input id="orderAmount" name="orderAmount" value="0,2" class="form-control" readonly />
</div>
<div class="row margin-top-10">
<input id="currency" name="currency" value="EUR" class="form-control" readonly />
</div>
<div class="row margin-top-10">
<input id="payMethod" name="payMethod" value="visa" class="form-control" />
</div>
<div class="row margin-top-10">
<input id="confirmUrl" name="confirmUrl" value="success.aspx" class="form-control" readonly />
</div>
<div class="row margin-top-10">
<input id="cancelurl" name="cancelurl" value="fail.aspx" class="form-control" readonly />
</div>
<div class="row margin-top-10">
<input id="digest" name="digest" value="raJKiCtB1Eupp/YmSKlAlWd+kT0=" class="form-control" />
</div>
</div>
</form>
<div class="row">
<button id="Button1" type="button" class="btn btn-md btn-block u-btn-primary" onclick="noPostBack()"><span class="fa fa-money"></span> @localizer["AcceptAndPay"]</button>
</div>
ASP.NET核心实现(不工作)
表格
<form method="post" id='form_digest' runat="server" >
<div>
<asp:Label ID="Label1" runat="server" Height="45px" Style="font-weight: bold; font-size: 30px;
border-top-style: none; border-right-style: none; border-left-style: none; border-bottom-style: none"
Text="Alpha Test Shop" Width="306px"></asp:Label><br />
<br />
<table>
<tr>
<td style="width: 198px">
MerchantID</td>
<td style="width: 330px">
<asp:TextBox ID="mid" runat="server" Width="124px">123</asp:TextBox></td>
</tr>
<tr>
<td style="width: 198px">
Order ID</td>
<td style="width: 330px">
<asp:TextBox ID="orderid" runat="server" Width="138px">123</asp:TextBox></td>
</tr>
<tr>
<td style="width: 198px">
Order Desc</td>
<td style="width: 330px">
<asp:TextBox ID="orderDesc" runat="server" Width="153px">OrderDesc</asp:TextBox></td>
</tr>
<tr>
<td style="width: 198px">
Ποσό</td>
<td style="width: 330px">
<asp:TextBox ID="orderAmount" runat="server" Width="129px">0,2</asp:TextBox></td>
</tr>
<tr>
<td style="width: 198px">
Νόμισμα</td>
<td style="width: 330px">
<asp:DropDownList ID="currency" runat="server">
<asp:ListItem>EUR</asp:ListItem>
</asp:DropDownList></td>
</tr>
<tr>
<td style="width: 198px">
Τρόπος Πληρωμής</td>
<td style="width: 330px">
<asp:DropDownList ID="payMethod" runat="server">
<asp:ListItem Value="">No pre Selection</asp:ListItem>
<asp:ListItem Value="visa">VISA</asp:ListItem>
<asp:ListItem Value="visaElectron">Visa Electron</asp:ListItem>
<asp:ListItem Value="mastercard">MasterCard</asp:ListItem>
<asp:ListItem Value="maestro">Maestro</asp:ListItem>
</asp:DropDownList></td>
</tr>
<tr>
<td style="width: 198px">
Σελίδα Confirmation</td>
<td style="width: 330px">
<asp:TextBox ID="confirmUrl" runat="server" Width="247px">success.aspx</asp:TextBox></td>
</tr>
<tr>
<td style="width: 198px">
Σελίδα
Cancel</td>
<td style="width: 330px">
<asp:TextBox ID="cancelUrl" runat="server" Width="247px">fail.aspx</asp:TextBox></td>
</tr>
<tr>
<td style="width: 198px">
Digest</td>
<td style="width: 330px">
<asp:TextBox ID="digest" runat="server" Width="247px">raJKiCtB1Eupp/YmSKlAlWd+kT0=</asp:TextBox></td>
</tr>
</table>
<br />
<br />
<asp:Button ID="Button2" runat="server" Text="Submit" Width="113px" /><br />
<br />
<br />
</div>
</form>
<form method="post" id='form_digest'>
<div class="col-md-12">
<div class="row margin-top-10">
<input id="mid" name="mid" value="123" class="form-control" />
</div>
<div class="row margin-top-10">
<input id="orderid" name="orderid" value="123" class="form-control" />
</div>
<div class="row margin-top-10">
<input id="orderDesc" name="orderDesc" value="OrderDesc" class="form-control" readonly />
</div>
<div class="row margin-top-10">
<input id="orderAmount" name="orderAmount" value="0,2" class="form-control" readonly />
</div>
<div class="row margin-top-10">
<input id="currency" name="currency" value="EUR" class="form-control" readonly />
</div>
<div class="row margin-top-10">
<input id="payMethod" name="payMethod" value="visa" class="form-control" />
</div>
<div class="row margin-top-10">
<input id="confirmUrl" name="confirmUrl" value="success.aspx" class="form-control" readonly />
</div>
<div class="row margin-top-10">
<input id="cancelurl" name="cancelurl" value="fail.aspx" class="form-control" readonly />
</div>
<div class="row margin-top-10">
<input id="digest" name="digest" value="raJKiCtB1Eupp/YmSKlAlWd+kT0=" class="form-control" />
</div>
</div>
</form>
<div class="row">
<button id="Button1" type="button" class="btn btn-md btn-block u-btn-primary" onclick="noPostBack()"><span class="fa fa-money"></span> @localizer["AcceptAndPay"]</button>
</div>
问题
正如你所看到的,形式是一样的。它发布在同一个端点中,但是从ASP.NET核心应用程序中我得到一个错误
“无效的商户id:空”
我能看到的唯一区别是在脚本中,我找不到它在做什么,所以它可能与我的错误有关
document.forms[0].__VIEWSTATE.name = 'NOVIEWSTATE';
另一方面,我在想也许我缺少一个配置选项,但我找不到什么
我已经为此苦苦挣扎了好几天,所以我非常感谢您的帮助
PS:我给出了一个过于简化的示例,其中我将成功url和取消url设置为ASP.NET Web表单示例中相同的.aspx页面。这只是为了重新创建与从函数创建的摘要值完全相同的摘要值,所以不必为此操心
更新
我试图通过Firefox的HTTP Header Live插件查看我的POST请求,但我发现我没有发布表单值
从WebForms应用程序更正帖子
来自我的应用程序的错误帖子
所以我的问题是,为什么会发生这种情况,我应该更改什么?如果您还没有使用,我建议您使用它来调试您的帖子。这样你就可以很容易地比较请求并确定它们之间的差异。@MarkG我添加了请求后的有效负载,确实有一些奇怪的事情发生了,我不明白。如果您想看一下,您是否可以在页面上有多个表单?如果是这样,您可能需要按名称而不是索引引用表单,即
document.forms[“form_digest”].submit()代码>。值得注意的是,没有一个标记与这个问题特别相关,因为它是客户端问题,而不是服务器端问题。