寻找docusign rest api异常处理协助

时间:2013-08-06 13:07:54

标签: api rest exception-handling docusignapi

我正在使用Rest API嵌入式签名。 Cert过程的一部分是正确处理异常。我看到returnURL事件参数可以返回“异常”。我如何发现异常是什么,以便我能正确处理并显示“人性化,友好”的消息? :)是否有任何首选的方法来测试/验证我的异常处理代码以防止可能的异常,例如强制异常返回的特定测试URL? MTIA

2 个答案:

答案 0 :(得分:-1)

因此,在认证方面,DocuSign认证部门要求您在显示的任何错误消息中包含联系信息,让用户知道他们可以联系谁以帮助解决错误。联系信息不能是DocuSign联系信息,它需要特定于您的组织或其他第三方,否则您将无法通过认证。

就可能的错误而言,RESTAPI指南有一个页面,列出了系统可能抛出的错误:

REST API Errors List

这是一个相对较大的列表,但由于您的问题与嵌入式签名有关,因此您只需要处理与嵌入式收件人(也称为“专属”收件人)相关的错误。搜索“captive”一词会从列表中产生以下错误,这些错误应该都可以通过嵌入式签名工作流程实现 -

  • CAPTIVE_CARBON_COPY_RECIPIENT_NOT_SUPPORTED
  • CAPTIVE_IN_PERSON_SIGNER_RECIPIENT_NOT_SUPPORTED
  • INVALID_CAPTIVE_RECIPIENT_OPERATION
  • RECIPIENT_NOT_CAPTIVE

答案 1 :(得分:-1)

不确定您的环境是什么样的,但如果您使用.NET,这可能会有所帮助。我所做的是在我从docusign获得的嵌入式签名方法上设置了一个out参数,以便返回bool,当通过异常块返回时为true,如果返回iframe令牌url则为false。

//Console.WriteLine("Embeded View Result --> " + responseText);
            //System.Diagnostics.Process.Start(url);
            failure = false;
            return url;
        }
        catch (WebException e)
        {
            using (WebResponse response = e.Response)
            {
                HttpWebResponse httpResponse = (HttpWebResponse)response;
                Console.WriteLine("Error code: {0}", httpResponse.StatusCode);
                using (Stream data = response.GetResponseStream())
                {
                    string text = new StreamReader(data).ReadToEnd();
                    //Console.WriteLine(text);
                    failure = true;
                    return text;
                }

除了例外,您还会收到包含错误代码和错误消息的错误文本。在我看来,我测试了失败bool是否属实,如果是我知道返回的文本是错误文本而不是要加载到iFrame中的URL标记。在确定文本是错误后我解析它以显示代码,然后显示消息,然后是一些自定义文本,要求用户通过电子邮件向我们的服务台系统发送错误文本。

以下是我用来测试失败并显示iFrame或解析ASPX视图中的错误文本的内容:

<%if (Model.APIfail)
      { %>
        <p><strong>It appears there was an error connecting with DocuSign API.</strong></p>
        <p>Error Code: <br /><%: Model.urlResponse.Substring(Model.urlResponse.IndexOf("<errorCode>") + 11, Model.urlResponse.IndexOf("</errorCode>") - (Model.urlResponse.IndexOf("<errorCode>") + 11)) %></p>
        <p>Error Message: <br /><%: Model.urlResponse.Substring(Model.urlResponse.IndexOf("<message>") + 9, Model.urlResponse.IndexOf("</message>") - (Model.urlResponse.IndexOf("<message>") + 9)) %></p>
        <p>Please submit error code and error message to the MAAX Spas helpdesk at <a href="mailto:helpdesk@maaxspas.com?Subject=DocuSign%20API%20Failure%20<%: Html.Encode(DateTime.Now.ToShortDateString()) %>" target="_top">helpdesk@maaxspas.com</a>.<br />Thank you.</p>
    <% } else { %>
        <iframe src="<%: Model.urlResponse %>" width="100%" height="1000" ></iframe>
    <% } %>

当然,我还没有获得认证,所以不管怎么说,因为无论出于什么原因我都可以使用这种方法拒绝。

希望这在某种程度上有用。