You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xero API Webhook返回401仍报错:响应未被平台识别问题排查

Xero Webhook签名验证:响应401不生效问题解决

我按照Xero官方文档配置应用的Webhook,编写了如下签名验证代码:

function xero_payment_detected(){

    $xero_wh_key = $_ENV['my_key'];

    $payload = @file_get_contents('php://input');
    $payload_hash = base64_encode(hash_hmac('sha256', $payload, $xero_wh_key, true));
    
    $headers = getallheaders();
    $xero_validation_header = $headers['X-Xero-Signature'];
    
    $is_valid_payload = ($payload_hash === $xero_validation_header);
    
    if( $is_valid_payload ){
        
        http_response_code(200);
        logging_function("test 1");
      
    } else {
        
        http_response_code(401);
        logging_function("test 2");                       
       
    } // end if else
         
            
}// end fn

日志显示Xero发送的有效、无效请求均能触发对应分支,但Xero平台持续提示“对签名无效的payload响应不是401”。当前站点为HTTPS,响应时间远低于Xero要求的5秒。

已解决:http_response_code(401)未正确设置响应码,改用header("HTTP/1.1 401 Unauthorized")即可修复,原因可参考PHP官方文档相关说明。


内容的提问来源于stack exchange,提问作者Chenille 'Shay' Pottle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 08:27:06