Shopify webhook 验签到底用哪个密钥
现象#
按教程用 API password 验签一直失败,换成 app secret 才通过,不确定哪个才是标准做法。
原因#
- HMAC 使用应用的
client secret(API secret key),不是 access token - 部分旧文档写的是「shared secret」,指的是同一个值
- 自定义应用与公共应用的密钥位置不同
处理步骤#
- 在 Partner 后台「应用设置 → 客户端凭证」取 Client secret
- 用它对原始请求体做 HMAC-SHA256,与
X-Shopify-Hmac-Sha256做 base64 比较 - 比较用常量时间函数,避免时序攻击
- 轮换密钥时同时支持新旧两把一段时间
验收标准#
验签稳定通过,伪造请求被拒,密钥轮换期间无中断。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。