我创建了一个概念验证asp.net C#应用程序来接收WooCommerce Webhook请求。不幸的是,默认情况下,WooCommerce WebHooks似乎不能很好地与ASP.NET Webhook接收器集成。在发现我应该使用自定义Webhook而不是Wordpress Webhook接收器之后,我现在遇到了签名问题。
当然,我想将WooCommerce插件完全保留,但我现在将秘密直接添加到新的标题属性' ms-signature'中。我不能让自定义Webhook接收器接受它。
我收到错误:
' ms-signature'提供的WebHook签名。标题字段 不符合' CustomWebHookReceiver'接收器。 WebHook请求无效。
我在web.config中得到了以下秘密,我也将其用作WooCommerce秘密。
public void AddData()
{
using (IDbConnection dbconnection = new SQLiteConnection(conn))
{
dbconnection.Open();
using (IDbCommand dbCmd = dbconnection.CreateCommand())
{
string sqlQuery = "INSERT INTO tbl_sample (Name,Age) VALUES('" + textBox1.Text + "','" + textBox2.Text + "')"; ;
dbCmd.CommandText = sqlQuery;
using (IDataReader reader = dbCmd.ExecuteReader())
{
SQLiteDataAdapter dataadapter = new SQLiteDataAdapter("SELECT * FROM tbl_Sample", conn);
DataSet ds = new System.Data.DataSet();
dataadapter.Fill(ds, "Info");
dataGridView1.DataSource = ds.Tables[0];
dbconnection.Close();
}
}
}
}
我尝试了很多东西,但我认为需要更改WooCommerce中应该使用签名的方式,以便自定义接收器接受它。
有人可以解释一下ASP.NET webhook的期望以及我如何才能最好地改变我的解决方案吗?
答案 0 :(得分:2)
Custom接收器适用于ASP.NET WebHooks生成的WebHook,因此不起作用。您可以尝试使用WordPress接收器或Generic Json WebHook接收器。
你可以在两个Nugets中找到它们:
http://www.nuget.org/packages/Microsoft.AspNet.WebHooks.Receivers.WordPress/ http://www.nuget.org/packages/Microsoft.AspNet.WebHooks.Receivers.Generic/
希望这有帮助,
亨里克