【问题标题】:How do I create a REST web service to process Docusign Connect service in C#?如何在 C# 中创建 REST Web 服务来处理 Docusign Connect 服务?
【发布时间】:2018-08-07 18:20:00
【问题描述】:

我想使用 Docusign Connect 服务,如https://www.docusign.com/supportdocs/pdf/connect-guide.pdf 中所述。

我使用 Windows Communication Foundation 创建了一个 REST 服务来接受来自该服务的 POST 消息。接口类中两个不同方法的代码是:

    [OperationContract]
    [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml,
        BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "ProcessConnectMessageStream")]
    string ProcessConnectMessageStream(Stream XMLMessage);

    [OperationContract]
    [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml,
       BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "ProcessConnectMessageRequest")]
    void ProcessConnectMessageRequest(HttpRequestMessage request);

方法的代码是:

    public string ProcessConnectMessageStream(Stream XMLMessage)
    {
        StreamReader sr = new StreamReader(XMLMessage);
        string xmlMessage = sr.ReadToEnd();
        Manager mgr = new Manager();
        return mgr.ProcessConnectMessage(xmlMessage);
    }

public void ProcessConnectMessageRequest(HttpRequestMessage request)
{
        try
        {
            // almost all code from https://github.com/docusign/recipe-010-webhook-csharp
            XmlDocument xmldoc = new XmlDocument();

        }
        catch (Exception ex)
        {
            string msg = ex.GetBaseException().Message;
        }
}

我设置了一个调用第一个方法的测试项目。我将 XML 保存在 Connect Guide 的末尾(Sample Connect Message 下的 XML)。我的测试方法获取文件并发布它。最后一个方法 mgr.ProcessConnectMessage(xmlMessage) 是我为解析 XML 而编写的。我的测试工作正常。我还创建了一个 GET 方法来确保服务正常运行。 GET 工作正常(我正在使用 ngrok 进行测试,因此我可以通过映射项目的 localhost:port 在 Internet 上调用我的 REST 方法)。

正如第二种方法的注释中所述,我基于我在 Github 上找到的第二种方法的代码创建了一个 Docusign Connect 应该使用的方法。

我已在我的 Docusign 测试帐户上配置 Connect 以使用这些方法。我已经创建了信封并打开了它们。 Connect 将调用我的方法,如 NGROK 的输出所示。

但是当任一方法被调用时,我都会收到 400 Bad Request 错误。

我不知道我还应该做什么才能让 Connect 与我的方法进行通信。

【问题讨论】:

  • 我使用 Fiddler(来自 Telerik)尝试查看来自 Docusign 的请求。我似乎无法收到请求,但我看到了我的服务的响应。响应包含的 XML 看起来就像 Connect 服务的 Docusign 文档中描述的那样。
  • 您收到 400 错误,这意味着您的网络服务器正在接收连接消息,但不知何故您的应用程序/网络服务器无法连接到正确的控制器/处理程序。检查控制器方法的签名,如果接受类型,响应类型是否正确,以及是否有任何非来自 DocuSign 的必填字段。
  • 由于某种未知原因,我在 Visual Studio 2015 中将 REST 服务创建为 Web API 项目时没有收到 400 错误。

标签: c# rest docusignapi


【解决方案1】:

请参阅我的最终评论。所以,我需要至少 30 个字符才能发布此内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    相关资源
    最近更新 更多