Php 正确地向WebHook发送带有空正文的200响应。提供了最少的例子

Php 正确地向WebHook发送带有空正文的200响应。提供了最少的例子,php,webhooks,xero-api,Php,Webhooks,Xero Api,下面是一些在线示例,对于正确签名的有效负载,我将返回200响应,对于错误签名或格式错误的有效负载,我将返回401响应 下面的示例已经过测试 签名生成正确,并且checkHash()函数识别正确签名/格式的有效载荷 我从端点得到的反馈是包含主体的响应。给出的建议是从响应的主体中去除所有内容-但就我所能看到的而言,我返回的是作为回声的文字响应,即200或401 $key = 'abcSomeKey'; $rawPayload = file_get_contents("php://input"

下面是一些在线示例,对于正确签名的有效负载,我将返回200响应,对于错误签名或格式错误的有效负载,我将返回401响应

下面的示例已经过测试

签名生成正确,并且
checkHash()
函数识别正确签名/格式的有效载荷

我从端点得到的反馈是包含主体的响应。给出的建议是从响应的主体中去除所有内容-但就我所能看到的而言,我返回的是作为回声的文字响应,即200401

$key = 'abcSomeKey';    
$rawPayload = file_get_contents("php://input");
checkHash();

function getSignature() {
    return base64_encode(hash_hmac('sha256', $rawPayload, $key, true));
}

function checkHash() {
    $signature = getSignature();

    if($signature === $_SERVER['HTTP_X_XERO_SIGNATURE']) {
        echo 200;
    }
    else {
        echo 401;
    }
}

我对php不太了解,但有两个错误。签名验证在功能块内未按预期工作。
$rawPayload
getSignature()
函数中的空字符串

此外,我还天真地返回了下面格式正确的响应代码

$key = "someKey";
$rawPayload = file_get_contents("php://input");
$signature = base64_encode(hash_hmac('sha256', $rawPayload, $key, true));
$authKey = $_SERVER['HTTP_X_XERO_SIGNATURE'];

if($signature === $authKey)
{
    http_response_code(200);
}   
else
{
    http_response_code(401);
}

我对php不太了解,但有两个错误。签名验证在功能块内未按预期工作。
$rawPayload
getSignature()
函数中的空字符串

此外,我还天真地返回了下面格式正确的响应代码

$key = "someKey";
$rawPayload = file_get_contents("php://input");
$signature = base64_encode(hash_hmac('sha256', $rawPayload, $key, true));
$authKey = $_SERVER['HTTP_X_XERO_SIGNATURE'];

if($signature === $authKey)
{
    http_response_code(200);
}   
else
{
    http_response_code(401);
}