小编Pra*_*nth的帖子

如何使用nodejs验证shopify webhook api

我无法使用“shopify-node-api”验证来自 shopify 的 webhook 响应。我正在使用以下代码来验证签名。

以下代码位于 app.js 上

app.use(bodyParser.json({
type:'application/json',
limit: '50mb',
verify: function(req, res, buf, encoding) {
     if (req.url.startsWith('/webhook')){
         req.rawbody = buf;
     }
   }
 })
);
app.use("/webhook", webhookRouter);
Run Code Online (Sandbox Code Playgroud)

下面是 webhook.router.js

router.post('/orders/create', verifyWebhook, async (req, res) => {    
    console.log(' We got an order')
    res.sendStatus(200)
 });
Run Code Online (Sandbox Code Playgroud)

下面为验证函数

function verifyWebhook(req, res, next) {
  let hmac;
  let data;
  try {
    hmac = req.get("X-Shopify-Hmac-SHA256");
    data = req.rawbody;
  } catch (e) {
    console.log(`Webhook request failed from: ${req.get("X-Shopify-Shop-Domain")}`);
    res.sendStatus(200);
  }
  if (verifyHmac(JSON.stringify(data), hmac)) { // Problem …
Run Code Online (Sandbox Code Playgroud)

node.js shopify shopify-api-node

6
推荐指数
1
解决办法
6219
查看次数

标签 统计

node.js ×1

shopify ×1

shopify-api-node ×1