javascript - 通过 webhook 发布时触发 javascript
问题描述
我有一个允许用户为订阅付费的网关。因此,一旦用户付款,就会通过 webhook 向我们的网站发送通知以及订单 ID、金额、产品名称等......我们会相应地更新数据库。
我想做的是整合谷歌电子商务跟踪。问题是网关不会重定向回我们的站点,而是将值发布到 webhook。
下面是我的跟踪代码。
ga('ecommerce:addTransaction', {
'id': '<?php $_POST['orderid'] ?>',
'affiliation': '<?php $_POST['company'] ?>',
'revenue': '<?php $_POST['amount'] ?>',
'shipping': '<?php $_POST['shipping_cost'] ?>',
'tax': '<?php $_POST['tax'] ?>',
'currency': 'EUR'
});
虽然我已将上述代码添加到 webhook,但它会更新数据库但不会触发分析事件。我认为这是因为需要打开页面才能执行 JS 代码。
相同的代码已添加到另一个页面,它工作正常。
数据发布到 webhook 时是否可以触发 JS 事件?
解决方案
您是否缺少echo
输出字符串的关键字?此外,您确实需要转义这些变量。
我强烈建议让 PHP 在这里完成繁重的工作:
ga('ecommerce:addTransaction', <?php
echo json_encode([
"id" => $_POST['orderid'],
"affiliation" => $_POST['company'],
"revenue" => $_POST['revenue'],
"shipping" => $_POST['shipping'],
"tax" => $_POST['tax'],
"currency" => "EUR"
], JSON_PRETTY_PRINT);
?>);
使用json_encode
可确保您的所有值都正确转义并输出有效的 JSON(这也是有效的 javascript)。
根据您提供的信息,无法知道这是否会解决您的问题;如果它不起作用并且您需要更多帮助,请发布 stackblitz 示例或更完整的版本。
推荐阅读
- android - 如何更新视图位置
- php - 我在 cPanel 上放了 cron 作业命令,但它不起作用
- python - 如何将 __init__ 参数传递给使用 qmlRegisterType 注册的类?
- tfs-2015 - 如何使用户能够在 Backlog 视图中添加功能
- javascript - VueJS 没有正确交互我的数据?
- python-2.7 - 从 Try 函数返回值的问题
- scala - .createOrReplaceTempView & .as 创建查询临时视图的区别
- python - Python 命令提示符 - 自动提取链接
- python - 如何将一个变量中包含的文本与另一个变量匹配
- sql - Postgresql:STRING_AGG() 按未显示值排序的最佳方式