【发布时间】:2020-05-18 08:20:17
【问题描述】:
谁能告诉我如何从 WooCommerce webhook 重新创建散列,以与请求中的“X-WC-Webhook-Signature”标头散列进行比较?
文档指定哈希是从“有效负载”生成的,但我无法生成相同的哈希。
我的 API 是 .NET Core 3.1
我尝试的第一件事:
var secret = "XXX";
var requestHash = Request.Headers["X-WC-Webhook-Signature"];
var generatedHash = "";
Stream byteContent = Request.Body;
byte[] keyByte = encoding.GetBytes(secret);
using(var hmacsha256 = new HMACSHA256(keyByte))
{
byte[] hashmessage = hmacsha256.ComputeHash(byteContent);
generatedHash = Convert.ToBase64String(hashmessage);
}
if(requestHash == generatedHash)
{
// Succes
}
第二:
using(StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
{
String json = await reader.ReadToEndAsync();
var generatedHash = "";
byte[] messageBytes = encoding.GetBytes(json);
keyByte = encoding.GetBytes(secret);
using(var hmacsha256 = new HMACSHA256(keyByte))
{
byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
generatedHash = Convert.ToBase64String(hashmessage);
}
if(requestHash == generatedHash)
{
// Succes
}
}
【问题讨论】:
标签: c# .net-core woocommerce hook-woocommerce