使用Node.js验证Shopify Webhook API的步骤如下:
npm init
npm install express crypto --save
const express = require('express');
const crypto = require('crypto');
const app = express();
const webhookSecret = 'your_webhook_secret'; // 替换为您的Webhook密钥
app.post('/webhook', (req, res) => {
const hmacHeader = req.get('X-Shopify-Hmac-Sha256');
const body = JSON.stringify(req.body);
const calculatedHmac = crypto
.createHmac('sha256', webhookSecret)
.update(body, 'utf8')
.digest('base64');
if (hmacHeader === calculatedHmac) {
// 验证成功,处理Webhook请求
console.log('Webhook验证成功');
// 在这里添加您的处理逻辑
res.sendStatus(200);
} else {
// 验证失败,拒绝请求
console.log('Webhook验证失败');
res.sendStatus(401);
}
});
app.listen(3000, () => {
console.log('应用程序已启动,监听端口3000');
});
webhookSecret
是您在Shopify开发者后台设置的Webhook密钥。确保将其替换为正确的值。X-Shopify-Hmac-Sha256
标头,该标头包含了Shopify生成的HMAC值。然后,使用相同的密钥和请求正文计算HMAC,并将其与请求头中的值进行比较。如果它们匹配,表示请求来自Shopify,验证成功。https://example.com
,则Webhook URL应为https://example.com/webhook
。这样,当Shopify事件触发时,您的应用程序将接收到相应的Webhook请求,并通过验证确保其来源可信。
领取专属 10元无门槛券
手把手带您无忧上云