【问题标题】:Incoming Post Data received by C# method, how?C# 方法接收的传入 Post 数据,如何?
【发布时间】:2018-03-10 03:44:44
【问题描述】:

我正在调用一个 API,并且我已经完成了 crate_order 调用。当用户完成付款后,API 会在 POST 中发送 Payment 回调数据并使用 Content-Type application/x-www-form-urlencoded。

我不确定如何在 C# 中捕获该 POST 数据并将数据保存在一个对象中以便我可以返回。

call_back URL 是我的CgCallback 方法:example.com/CgCallback。

这个方法看起来像:

public CgCallback incomingData()
{
     CgCallback resultCgOrder = new CgCallback();

    resultCgOrder.Id = Request.Form["id"];
    resultCgOrder.OrderId = Request.Form["order_id"];
    return resultCgOrder;
}

很遗憾给出了这个错误:

当前上下文中不存在名称“请求”

【问题讨论】:

标签: c# asp.net .net post


【解决方案1】:

我认为你需要设置回调 url 页面,以便 coingate 触发你的页面。

public partial class Test_CallBack_Page : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string tempID           = GetFormVariableOrNull(Request.Form["id"]);
        string tempOrder_ID     = GetFormVariableOrNull(Request.Form["order_id"]);
        string tempStatus       = GetFormVariableOrNull(Request.Form["status"]);
        //pending, confirming, paid, invalid, expired, canceled, refunded

        if (tempStatus.Equals("paid"))
        {
            //update your Purchase Order
        }
    }

    protected string GetFormVariableOrNull(object formvariable)
    {
        if (formvariable != null)
        {
            try
            {
                return formvariable.ToString();
            }
            catch (Exception ex)
            {
                /// log the exception in file or DB
                Console.WriteLine(ex.Message);/// just for an example
                return null;
            }
        }
        else return null;
    }
}

你介意分享你的代码吗?我对使用 c# 使用 coingate api 创建订单感到困惑。

【讨论】:

  • 您好,谢谢您的回复。别担心,很快就会和你分享我的代码。我无法在这个 callback_URL 区域完成创建顺序和堆栈。一旦排序会敲你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
  • 2011-11-26
相关资源
最近更新 更多