首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编辑体映射模板将Woocommerce webhooks传递给API网关

编辑体映射模板将Woocommerce webhooks传递给API网关
EN

Stack Overflow用户
提问于 2018-01-22 22:12:20
回答 1查看 446关注 0票数 0

我一直试图让Woocommerce网络钩子通过API并输出控制台中输出的单个数据。问题是,我无法获得适当配置的Body映射模板,以便将body传递给Lambda函数。我最终希望使用这些事件对象来传递到DynamoDB中,但我现在只是将它们记录在控制台中。

使用标准web钩子体时,使用AWS中的测试事件,使用http://myjson.com/18afwp这样的示例,主体数据可以很好地输出。

这是我的Lambda代码

代码语言:javascript
复制
exports.handler = (event, context, callback, err) => {
callback(null, event.order_key);
if (err) console.log('JSON Pass Fail');  // an error occurred
else     console.log(event.order_key); // successful response
};

在控制台日志2018-01-22T21:45:22.560z8c417061-ffgd-11e7-805b-f57d6e6be228 wc_order_5a64ab355c2b2中显示结果:"wc_order_5a64ab355c2b2“。

对于Body映射模板,我尝试了几个变体,但采用了标准的方法,请求传递,但我认为身体部分只是需要调整才能让身体通过。下面是标准体映射模板https://pastebin.com/gjZaxBTW的内容

在Cloudwatch中,当Woocommerce web钩子被发送时,日志会以未定义的形式返回。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-24 01:41:42

经过多次尝试,下面显示了成功的body映射模板,该模板将头数据和正文数据传递给Lambda。然后可以使用event.body.order_key格式访问这些对象。

我最初尝试在Webhooks下添加Woocommerce admin中显示的每一行标题,以显示Web钩子输出。但是,如果您查看Cloudwatch日志,您将看到Cloudfront添加了额外的标题,比Wordpress中列出的标题还要多。

代码语言:javascript
复制
{
"body" : $input.json('$'),
"headers": {
    #foreach($header in $input.params().header.keySet())
    "$header": "$util.escapeJavaScript($input.params().header.get($header))" #if($foreach.hasNext),#end

    #end
}
}

这使用了请求体传递选项。

代码语言:javascript
复制
When there are no templates defined (recommended)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48391079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档