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

DocuSign sends notification to requested URL, but I am not able to receive it

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

通过查看DocuSign系统上的连接日志,我看到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"
          }
        ]
      },

基础知识

您正在使用 "webhook." 您使用 DocuSign 注册了 url。当您的信封更改状态时,DocuSign 平台将调用您的 webhook url。

诊断问题

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

既然您知道 DocuSign 正在尝试发送给您,那么问题出在您系统的某个地方。我将执行以下操作来诊断问题:

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