Shopify Webhooks

Shopify webhook 验签到底用哪个密钥

现象#

按教程用 API password 验签一直失败,换成 app secret 才通过,不确定哪个才是标准做法。

原因#

  • HMAC 使用应用的 client secret(API secret key),不是 access token
  • 部分旧文档写的是「shared secret」,指的是同一个值
  • 自定义应用与公共应用的密钥位置不同

处理步骤#

  1. 在 Partner 后台「应用设置 → 客户端凭证」取 Client secret
  2. 用它对原始请求体做 HMAC-SHA256,与 X-Shopify-Hmac-Sha256 做 base64 比较
  3. 比较用常量时间函数,避免时序攻击
  4. 轮换密钥时同时支持新旧两把一段时间

验收标准#

验签稳定通过,伪造请求被拒,密钥轮换期间无中断。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。