我有一个网关,允许用户为订阅付费。因此,一旦用户付款,通知就会通过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事件?
答案 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示例或更完整的版本。