我的CGI脚本没有收到自定义标头

时间:2016-04-24 02:59:16

标签: perl http-headers cgi shopify webhooks

我正在编写一个CGI脚本(Perl on Apache,没有其他框架),它应该是一个webhook端点。技术细节是它应该从Shopify商店接收事件,但那是半无关紧要的。 Shopify告诉我,为了验证webhook是否来自他们,我需要使用他们提供的密钥来计算HMAC,并确保它与X-SHOPIFY-HMAC-SHA256标头中的值匹配。我已经使用requestb.in查看已发送的webhook,并且我可以验证他们正在使用的http客户端是否正在发送X-header。

然而,当我的CGI脚本运行时,我只获得了标准的标头。 X-SHOPIFY-HMAC-SHA256既没有在Perl CGI模块http()中找到,也没有在%ENV环境变量中找到。 (我读过How do I access the HTTP Header of request in a CGI script?How to fetch HTTP headers in perl when using CGI

我使用cgiwrap来获取我的脚本额外的权限,但这不应该阻止我看到标题正确吗?

1 个答案:

答案 0 :(得分:2)

Plain apache为HTTP标头设置环境变量。首先尝试没有任何包装。您也可以尝试ItemTemplate

ListBox

手动调用printenv或脚本以检查调用者是否可能导致问题:

printenv.cgi

如果您的脚本被称为API,您可能还想转储到文件中。

另见http://httpd.apache.org/docs/current/howto/cgi.html