3

我的问题是我不知道如何在不知道发布消息来自的 URL 的情况下处理传入请求。

我尝试集成的 Vend API 会向我的 URL 发送一条包含以下信息的帖子消息:

“POST 正文将包含一个名为 payload 的字段。该字段包含一个 JSON 编码对象,其中包含导致挂钩事件的对象的详细信息。其他表单字段(例如 environment 或 domain_prefix)可能存在,但不保证存在。

您在 webhook 请求中找到的有效负载对象现在与您从标记为 1.0 或更高版本的 API 的较新部分收到的相同。因此,例如,产品 webhook 应该为您提供与您请求 /api/1.0/product/{product_id} 相同的产品有效负载。”

http://docs.vendhq.com/webhooks.html(这里是更多详细信息的链接)

我对 ASP MVC 还很陌生,我无法找出最佳的前进方式。我最终需要将传入的名称值对映射到我的模型。

任何帮助将不胜感激。

4

1 回答 1

1

当您说您不知道发布消息来自的 URL 时,我认为您的意思是您不知道 webhook发布到的 URL 的格式(路径和参数) 。为了处理请求,您的 MVC 应用程序需要知道的唯一事情是 post 参数的名称,在这种情况下,它是一个名为的单个参数payload,其中包含根据您从文档中包含的片段的 JSON 字符串。

您可以通过多种方式获取此数据。最简单的方法之一是利用 ASP.NET MVC 将 POST 参数自动映射到控制器操作方法参数:

public ActionResult MyActionMethod(string payload)
{ 
   // 'payload' will be automatically populated with the json string from the POST payload
}

当然,您现在必须解析 json 有效负载,您可以使用 .NET 框架或任意数量的 3rd 方库以多种方式执行此操作。

于 2014-11-16T14:51:06.987 回答