【问题标题】:Blazor Navigate to other page with post requestBlazor 使用发布请求导航到其他页面
【发布时间】:2022-10-15 22:19:27
【问题描述】:

在我的 Hosted Blazor Web 程序集应用程序中,我们希望通过重定向到第三方网站来实现第三方支付网关。为了访问第三方页面,我们需要重定向到第三方页面并使用 POST/GET 方法提供所有必需的参数。

我们尝试过

NavigationManager.NavigateTo("https://sandbox.merchant.razer.com/RMS/pay/MerchantID/?"
+ "Param1=data"
+ "&param2=data"
+ "&..."
+ "&returnurl=data"
+ "&cancelurl=data"
")

它工作得很好。

但是我们认为在重定向到支付页面时我们应该实现一个 POST 方法而不是 GET 方法。

我尝试使用邮递员并使用带有表单数据内容中的参数的 post 方法重新发送参数,它会按预期完美地返回 Html 内容。

我们有什么办法可以在 blazor 中做到这一点?

我曾经在 php 中做同样的事情,但在 Blazor 中我不确定这一点。

如果可能,我们希望用户不能看到我们发送的所有参数,因为可能存在一些敏感信息。

【问题讨论】:

  • 这个过程是否从用户交互开始?就像他们点击付款按钮一样?

标签: c# post payment-gateway blazor-webassembly


【解决方案1】:

我有一个需要 POST 方法的 Blazor 支付项目。 我使用以下内容重定向到项目中自己的 PaymentRequest.cshtml 而不是 NavigateTo 支付网关

<form id="form1" method="post" name="ePayment" action="@Model.PaymentEndPoint">
    @foreach (var item in Model.PaymentRequest.ToDictionary())
    {
        <input type="hidden" name="@item.Key" value="@item.Value" />
    }
</form>

<script>
    window.onload = function(){
    document.forms[0].submit();
    };
</script>

您可以使用自己的键值对修改内容。 页面加载后,它将 POST 到支付网关

【讨论】:

    猜你喜欢
    • 2016-08-01
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    相关资源
    最近更新 更多