我正在尝试在asp.net mvc api中编写一个Webhook接收器。
但是问题是webhook初始化应用需要一种奇怪的验证方法。他们需要我添加以下代码,以便进行验证并允许我在其仪表板中添加URL。
`<?php if (isset($_GET['zd_echo'])) exit($_GET['zd_echo']); ?>`
您认为我可以在asp.net中实现什么?到目前为止,我一直尝试遵循。 (它在邮递员中有效,但他们无法验证。)
// POST api/<controller>
public string Post([FromBody]CallNotification value, string zd_echo)
{
if( zd_echo != null && zd_echo != "")
{
return value.zd_echo;
}
else
{
this.AddCall(value);
return value.status_code;
}
}
答案 0 :(得分:1)
首先,我不是Php开发人员。其次,这里有很多假设,因此这完全基于您发布的内容。
<?php if (isset($_GET['zd_echo'])) exit($_GET['zd_echo']); ?>
基于以上假设:
// Just echo the value of the zd_echo key in the query string if it's set
public IHttpActionResult Get([FromUri] string zd_echo)
{
//if not set/null return HTTP 200
if (string.IsNullOrWhiteSpace(zd_echo))
return Ok();
return ResponseMessage(new HttpResponseMessage
{
Content = new StringContent(zd_echo)
});
}
因此,对http://example.com/api/webhook?zd_echo=bar
的请求将:
bar
,Content-Type: text/plain; charset=utf-8
否则,类似http://example.com/api/webhook?zd_echo
之类的内容将仅以HTTP/1.1 200 OK
高度。