Orbeon表单-提交表单后,reCAPTCHA字段必填错误

时间:2019-07-19 02:20:05

标签: recaptcha hybris orbeon xforms

我正在努力使reCAPTCHA以Orbeon形式工作。 我正在SAP Commerce(Hybris)中使用ORBEON 2018.2.3.201905172253 PE。 提交表格后,即使验证码是正确的,我也会收到错误消息“请检查您对验证码的回答”。

根据Orbeon官方文档https://doc.orbeon.com/form-runner/component/captcha

创建了一个通用表单并添加了reCAPTCHA
  • 将我的私钥和公钥添加到属性文件中
  • 将reCAPTCHA属性添加到我的表单中:
<property
        as="xs:string"
        name="oxf.fr.detail.captcha.yforms.myForm"
        value="reCAPTCHA"/>
  • 这是单击“提交”按钮时执行的过程:
    <property as="xs:string"  name="oxf.fr.detail.process.save-final.yforms.myForm">
        validate-all
        then save
        then send(
        uri        = "https://myurl",
        method     = "PUT"
        )
        then navigate(uri = "https://myurl")
    </property>
  • 我按预期在表单底部看到了reCAPTCHA
  • 当我在填写表格并成功完成验证码后单击“提交”时,我会看到一个弹出窗口,显示“存在验证错误。请在正确填写所有字段后重试。” 表单在验证码字段中显示此错误: “请检查您对CAPTCHA挑战的答案。”

所以我很明显地缺少一些东西。我知道要添加fr-verify-done和fr-verify-error需要一些配置,但是Orbeon文档没有指定如何通过PROPERTIES进行配置。他们只说了如何在手动添加验证码组件时添加这些事件侦听器(通过Form Builder编辑表单的源代码)。

我尝试过但不起作用的事情:

  1. 提交时调度fr-verify事件:

       xf:dispatch(name =“ fr-verify”,targetid =“验证码”)     然后验证所有     然后保存     然后发送(     uri =“ https://myurl”,     方法=“ PUT”     )     然后浏览(uri =“ https://myurl”)

  2. 根据Orbeon文档将reCAPTCHA组件添加到表单源代码中:

<fr:recaptcha id="my-captcha">
<xf:send ev:event="fr-verify-done" submission="save-submission"/>
<xf:action ev:event="fr-verify-error">
<xf:toggle case="failure-case"/>
<xf:dispatch target="my-captcha" name="fr-reload"/>
</xf:action>
</fr:recaptcha>

当我添加以上摘录后单击“保存”时,“表单生成器”崩溃。如果我尝试通过Orbeon提供的在线演示表单构建器向表单添加相同的摘录,也会发生同样的情况:https://demo.orbeon.com/demo/fr/orbeon/builder/new 这太奇怪了,因为我使用的是在线最新版本的表单生成器添加了他们提供的代码,并且在尝试保存它时仍然崩溃。因此,我认为存在的问题与平台无关,而与Orbeon本身有关。

这是在将Recaptcha摘录添加到表单的源代码之后,我在Form Builder的在线演示中遇到的错误:“无法读取未定义的属性'call''

我没有提供任何相关的日志,我为Orbeon激活了调试级别日志,但没有得到任何有用的信息。

如果有人可以指导我完成以下任何一项,我将非常感谢: -在不使用Form Builder更改表单源代码的情况下配置fr-verify事件,或者 -通过Form Builder成功添加reCAPTCHA组件而不会使其崩溃,或者 -您可以提出的任何使验证码起作用的表格

预先感谢, 大卫

1 个答案:

答案 0 :(得分:0)

SAP Hybris 6.6包括Orbeon Forms 2017.1.1,该版本使用Google的reCAPTCHA 1,Google不再支持该版本。您可以选择以下两种方式:

  • 要升级到包含Orbeon Forms 2018.1或2017.2.2或更高版本的SAP Hybris版本(这些版本使用Google的reCAPTCHA 2)。
  • 要使用SimpleCaptcha而不是reCAPTCHA。