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

PowerShell生成HMAC SHA256哈希适配Kamstrup READy API校验不匹配求助

问题核心原因

你遇到的哈希不匹配问题确实和消息内容的格式化直接相关,有两个核心错误点:

  • 消息体包含多余的空白字符:你当前用多行字符串定义的JSON带了换行、缩进、键与值之间的多余空格,Kamstrup API计算签名时使用的是和请求原始payload完全一致的字节流,任何多余的空白字符都会导致哈希结果不一致。
  • 编码选择错误:使用ASCII编码计算字节流不符合API规范,API统一使用UTF-8编码处理payload。

修正后的代码

# 使用无多余空白的紧凑JSON格式,和API侧计算时的payload结构完全一致
$message = '{"verificationToken":"e6557603-9121-4c9b-9c38-1a33f56204b0"}'
$secret = '6KVQ05mN9iLvCg=='

$hmacsha = New-Object System.Security.Cryptography.HMACSHA256
$hmacsha.key = [Convert]::FromBase64String($secret)
# 改用不带BOM的UTF8编码获取字节流
$signature = $hmacsha.ComputeHash([Text.Encoding]::UTF8.GetBytes($message))
$signature = [Convert]::ToBase64String($signature)

echo $signature

$ExpectedHash = 'jm+Inr5EVDgLHbpZaTVjInllgm8Ogs7Ok9mLePiciNc='
# 修正后输出结果将和预期哈希一致

额外注意事项

如果后续对接正式webhook时再次出现哈希不匹配,不要对收到的请求payload做JSON解析后再序列化的操作,直接读取请求的原始字节流参与哈希计算,避免序列化过程改变空白符、字符编码导致结果不一致。


内容的提问来源于stack exchange,提问作者Koen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:09:04