通过webhook发布时触发javascript

时间:2019-06-30 22:02:37

标签: javascript php

我有一个网关,允许用户为订阅付费。因此,一旦用户付款,通知就会通过Webhook连同订单ID,金额,产品名称等一起发送到我们的网站,然后我们会相应地更新数据库。

我想做的就是集成Google eCommerce跟踪。问题在于网关不会重定向回我们的站点,而是将值发布到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事件?

1 个答案:

答案 0 :(得分:0)

您是否缺少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示例或更完整的版本。