将自定义 captcha 服务与 Customer Insights - Journeys 窗体集成

Customer Insights - Journeys 窗体允许您使用自定义的 captcha 机器人防护来验证窗体提交。 本文给出了一个如何集成 Google reCAPTCHA 的示例。 其他 captcha 服务的流都类似。 本文中的步骤适用于市场营销和事件注册窗体类型。

备注

在当前的应用版本中,只能激活一个 captcha 实现。 如果您使用自己的验证码提供程序(如下一节所述),则使用现成验证码的现有窗体将停止工作。 自定义 captcha 实现至少需要编写和调试 dataverse 插件的基本知识。

流程由以下步骤组成:

  1. 将 reCAPTCHA 添加到窗体中
  2. 提交窗体后,将 captcha 文本值添加到窗体提交中。
  3. 激活 reCAPTCHA 插件 并安全存储私钥。

分步示例:集成 Google reCAPTCHA

1. 将 reCAPTCHA 添加到窗体中

  1. 在 Customer Insights - Journeys 窗体编辑器中创建窗体。

  2. data-validate-submission="true" 属性添加到 <form> 元素中,这可以对窗体提交进行自定义验证:将属性添加到窗体元素。

  3. 在窗体中添加一个 <div id="g-recaptcha"> 作为 reCAPTCHA 的占位符。 此 div ID 之后将用作引用。 您应该将占位符放在最后一个字段和提交按钮之间。 为 reCAPTCHA 添加占位符。

  4. 发布窗体,并将窗体嵌入到您的网站中。

  5. 编辑嵌入窗体的页面。 将 Google 提供的脚本添加到页面标题中。 此脚本加载带有 onLoad 回调参数的 reCAPTCHA。 captcha 一加载即会调用此回调。

    <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback" async defer></script>
    
  6. 添加 onLoadCallback 函数:

    function onloadCallback() {
        grecaptcha.render('g-recaptcha',
        { 
          sitekey: '{sitekey}',
        });
    }
    

    {sitekey} 占位符替换为 Google 提供的占位符。 此回调函数在您之前创建的占位符 <div id="g-recaptcha"> 中呈现 reCAPTCHA。

  7. 注册窗体加载程序调用的 onloadCallback 函数:

document.addEventListener("d365mkt-afterformload", onloadCallback);

2. 将 captcha 文本值添加到窗体提交中

提交窗体后,g-recaptcha-response 参数将被自动添加到窗体提交中。 在接下来的步骤中,您将构建一个隐藏此值的插件,因为它将被添加到插件代码返回的响应对象中的 ValidationOnlyFields 列表中。

将添加 G-recaptcha-response 参数。

3. 激活 reCAPTCHA 插件

  1. 导航到 设置>窗体设置>reCAPTCHA
  2. 输入私钥。 您的私钥保存在安全的存储位置。
  3. 通过切换 状态 切换来激活插件。

输入 reCAPTCHA 的密钥。