C# ASP.NET核心应用程序中Alpha Bank的签出端点

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> &

我正在ASP.NET Core 2.0中创建一个应用程序,需要创建一个希腊银行提供的结账端点。(阿尔法银行) 他们在ASP.NET Web表单应用程序中提供了必要的实现,我必须将必要的信息发布到他们的端点。 问题是,我正在ASP.NET核心应用程序中重新创建相同的表单帖子,但我无法让它正常工作

ASP.NET Web表单实现(工作正常)

表格

<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 />
    &nbsp;
    </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 />
    &nbsp;
    </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()。值得注意的是,没有一个标记与这个问题特别相关,因为它是客户端问题,而不是服务器端问题。