WordPress WooCommerce ASP.net: 'ms-signature' header 字段提供的 WebHook 签名与接收方期望的值不匹配

WordPress WooCommerce ASP.net: The WebHook signature provided by the 'ms-signature' header field does not match the value expected by the receiver

我创建了一个概念验证 asp.net C# 应用程序来接收 WooCommerce Webhook 请求。不幸的是,默认情况下 WooCommerce WebHooks 似乎不能很好地与 ASP.NET Webhook 接收器集成。在发现我应该使用自定义 Webhook 而不是 Wordpress Webhook 接收器之后,我现在遇到了签名问题。

当然,我想让 WooCommerce 插件完全保持原始状态,但是我现在将秘密直接添加到新的 header 属性 'ms-signature' 中。我无法让自定义 Webhook 接收器接受它。

我收到错误:

The WebHook signature provided by the 'ms-signature' header field does not match the value expected by the 'CustomWebHookReceiver' receiver. WebHook request is invalid.

我在 web.config 中得到了以下秘密,我也将其用作 WooCommerce 秘密。

> <appSettings>
>     <add key="MS_WebHookReceiverSecret_Custom" value="7077693b67c9441a3dbbdbe7ac5b655ffdb323a40fd4ff7535d54c8f10e10582"/>
> </appSettings>

我尝试了很多方法,但我认为需要更改 WooCommerce 签名的使用方式,以便自定义接收者接受它。

有人可以向我解释 ASP.NET webhook 的期望以及我如何才能最好地改变我的解决方案吗?

自定义接收器适用于 ASP.NET WebHook 生成的 WebHook,因此无法正常工作。您可以试试 WordPress Receiver 或 Generic Json WebHook Receiver.

您可以在两个 Nuget 中找到它们:

http://www.nuget.org/packages/Microsoft.AspNet.WebHooks.Receivers.WordPress/ http://www.nuget.org/packages/Microsoft.AspNet.WebHooks.Receivers.Generic/

希望这对您有所帮助,

亨里克