如何将Lemon Squeezy连接到Shopify Flow
Lemon Squeezy 销售数字产品和订阅服务,并会就每笔订单、订阅及许可证变更向您发送通知。Workflow Webhooks 将该通知转换为 Shopify Flow 触发器,以便您的商店能够对此做出响应:为客户添加标签、添加订单备注、发送内部邮件、更新元字段 - - 凡是 Shopify Flow 能做到的,它都能实现。
本指南详细说明了整个流程 - - Lemon Squeezy 发送请求,Workflow Webhooks 接收并验证,Shopify Flow 执行操作 - - 每个请求都会验证 Lemon Squeezy 的 HMAC 签名,因此只有 Lemon Squeezy 才能启动您的工作流程。
你可以制作什么
- 标签那些同时购买了数字产品的Shopify客户,以便捆绑包和客户分群能够匹配。
- 将当前有效的许可证级别作为元字段记录到客户记录中。
- 当有近期在Shopify下有过订单的客户取消订阅时,请向您的团队发送电子邮件。
常见需发送的事件:order_created、subscription_created、subscription_cancelled、license_key_created。
开始之前
- Workflow Webhooks 已安装在您的 Shopify 商店上。
- Shopify Flow 已安装,该应用可从Shopify应用商店免费下载。
- 一个在 Lemon Squeezy 上的账户,且具有创建 Webhook 的权限。
步骤 1 - 在 Workflow Webhooks 上创建 Webhook
- 打开 Workflow Webhooks -> Webhook -> 创建 Webhook,并为其命名一个在 Shopify Flow 中能认出的名称,例如
Lemon Squeezy events。 - 在**“身份验证**”下,选择**“HMAC”**。
- 在**“签名提供商**”下,选择 Lemon Squeezy。该应用会自动为您填写头信息、算法、签名负载和重放窗口 - - 无需进行其他配置。
- 暂时将“密钥”字段留空,然后点击“保存”。复制页面上显示的 Webhook URL。
有关其他身份验证模式,请参阅 身份验证;有关如何选择哪些字段会传输到 Shopify Flow,请参阅 负载映射和流变量。
步骤 2 - 在 Lemon Squeezy 中添加端点
在 Lemon Squeezy 中,打开**“设置”→“Webhook”,**使用您复制的 URL 添加一个 Webhook,选择相关事件,并输入签名密钥。
如何找到你的“Lemon Squeezy”签名秘诀
您在创建 Webhook 时输入的签名密钥。
Lemon Squeezy 关于 Webhook 签名的官方文档 中,提供了您账户的具体措辞和截图。
将该密钥粘贴到 Workflow Webhooks 页面中 Webhook 的**“Secret**”字段中,然后保存。从那时起,每笔 Lemon Squeezy 的配送订单在进入 Shopify Flow 之前都会经过验证。
此处检查的内容
| 什么 | 值 |
|---|---|
| 签名页眉 | X-Signature |
| 签名的位置 | 整个标头值 |
| 签署了什么 | {body} |
| 签名 | HMAC-SHA256,十六进制编码 |
| 时间戳 | 此发件人未使用该地址 |
| 回放保护 | 无 - - 该发件人未对时间戳进行签名,因此所有有效的签名均保持有效 |
| 秘密 | 作为纯文本使用。请完全按照发件人显示的内容粘贴 |
在已签名的负载中,{body} 就是原始请求正文,字节对字节完全一致。
如果请求未通过上述任何一项检查,则会因401错误被拒绝,该错误会被记录在历史与故障排除中,且该请求永远不会启动工作流程。
步骤 3 - 构建Shopify Flow工作流程
- 在 Shopify Flow 中,创建一个工作流程,并选择“Workflow Webhooks”触发器。
- 点击**“记录事件**”,然后从 Lemon Squeezy 发送一个测试事件(或使用 Workflow Webhooks 中的**“发送测试”功能**),以便 Shopify Flow 学习您的数据结构。
- 您拥有的每个 Webhook 都会触发同一个 Shopify Flow 触发器,因此请在 Webhook ID 上添加第一个条件,以确保此工作流程仅适用于 Lemon Squeezy。该 ID 显示在 Webhook 页面上。
- 添加操作 - - 标签客户、添加备注、发送内部邮件、更新元字段。



第 4 步 - - 进行端到端测试
在 Lemon Squeezy 中触发一个真实事件。在“Workflow Webhooks”→“History”中,您应该能看到调用记录,状态显示为**“Success**”。如果签名有误,则会显示一条失败记录并附带原因;验证已签名的 Webhook 介绍了签名测试工具,该工具会精确指出是哪一步操作失败了。

签名不匹配▾
按以下顺序检查:密钥(最常见的原因 - - 多余的空格,或来自错误环境的密钥)、发送方是否使用了其他端点的密钥,以及Lemon Squeezy与应用程序之间是否存在任何会重写请求正文的环节。 签名覆盖原始字节,因此会重新格式化 JSON 的代理会破坏签名。Webhook 页面上的签名测试工具会显示被签名的确切文本内容。
每次请求都会返回401错误▾
请确认 Webhook 的身份验证方式已设置为 HMAC,且已选择 Lemon Squeezy 提供商;确认已填写密钥;并确认 Lemon Squeezy 发送至该 URL 的请求内容与应用中显示的完全一致,包括末尾的代码。
“历史”中未显示任何内容▾
该请求从未送达。请在 Lemon Squeezy 中重新检查 URL,并查看 Lemon Squeezy 自身的交付日志,了解其收到的响应。如果出现 404 错误,说明 Webhook 地址错误或已被删除;如果出现 429 错误,则说明您已超出套餐的调用限制 - - 请参阅 套餐与使用情况。
工作流程针对错误的事件运行▾
您商店中的每个 Webhook 都会触发同一个 Shopify Flow 触发器。请在工作流程的第一步中添加一个基于 Webhook ID 的条件,或者缩小从 Lemon Squeezy 发送的事件范围。
相关
- 验证已签名的 Webhook - 我们核实的每一家服务提供商,以及如何描述未核实的服务提供商。
- 负载映射和流变量 - 从负载中提取正确的字段并导入 Shopify Flow。
- 重复配送防护 - 当Lemon Squeezy重新尝试送货时会发生什么。
- 历史与故障排除 - 每个请求的日志,并支持重放。

