DocuSign向请求的URL发送通知,但我无法收到

时间:2016-08-10 09:51:03

标签: ruby-on-rails docusignapi

我已将信封设置为接收信封事件通知。我正在使用Rails和Docusign_REST gem。

通过检查DocuSign系统上的Connect日志,我看到DocuSign已发送通知,但我的服务器尚未处理。任何其他信息都会有所帮助。

event_notification: {
        url: "<MY_REQUEST_URL>",
        logging: true,
        envelope_events: [
          {
            include_documents: false,
            envelope_event_status_code: "Sent"
          },
          {
            include_documents: false,
            envelope_event_status_code: "Completed"
          },
          {
            include_documents: false,
            envelope_event_status_code: "Delivered"
          }
        ]
      },

1 个答案:

答案 0 :(得分:1)

基础知识

你正在使用“webhook”。您在DocuSign上注册了一个网址。当信封改变状态时,DocuSign平台将调用您的webhook网址。

诊断问题

您知道DocuSign正试图通过查看DocuSign管理工具中的“连接”消息日志向您(在您的“webhook_url”)发送通知消息。 - 您可以使用管理工具的“重新发送”按钮轻松地重新发送通知作为测试。

由于您知道DocuSign正在尝试发送给您,因此您的系统上存在问题。我会做以下几点来诊断问题:

  1. 假设您的webhook_address类似于“http://my-server.com/my_app/webhook”您是否使用DocuSign注册了整个网址?不要遗漏http或https! (生产中需要https,但开发人员沙箱中不需要)
  2. 查看传入的服务器日志。您应该看到来自DocuSign的POST请求。如果不这样做,请检查防火墙,互联网上的webhook地址的可用性等。
  3. 您的webhook_url是否可以从公共互联网上获取?您可以使用www.hurl.it服务进行测试。由于hurl.it将发送一个空的请求体,你的听众可能会窒息。当然,如果你防火,你的听众检查空的请求正文,那对你有好处。
  4. 如果您在自己的开发机器上运行webbrick或其他Ruby Web服务器,那么您需要在公共互联网上使用地址,因为DocuSign无法直接发送到您的开发机器。 ngrok(和类似的应用程序)是一个很好的解决方案。在本地计算机上运行ngrok并为其提供Ruby服务器的localhost端口号。然后,ngrok会在公共互联网上为您提供一个可以与DocuSign一起使用的网址。
  5. 对于开发,您的webhook监听器网址可以使用http或https。您的SSL证书必须具有通常受信任的根证书之一的信任路径。 (Mozilla名单)。使用4美元的证书是可以的。无需使用扩展验证证书或类似证书。不要使用自签名证书。它不会受到DocuSign平台的信任,也不会通过您的webhook接收通知。