2

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

4

2 回答 2

-1

不确定您的环境是什么样的,但如果您使用的是 .NET,也许这会有所帮助。我所做的是在从 docusign 获得的嵌入式签名方法上设置一个 out 参数,以便返回一个布尔值,当通过异常块返回时为 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;
                }

除了例外,您还会获得包含错误代码和错误消息的错误文本。在我看来,我测试了失败布尔是否为真,如果是,我知道返回的文本是错误文本,而不是要加载到 iFrame 中的 URL 令牌。在确定文本是错误后,我对其进行解析以显示代码,然后是消息,然后是一些自定义文本,要求用户通过电子邮件发送给我们的帮助台系统并显示错误文本。

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

<%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>
    <% } %>

当然,我还没有获得认证,所以请谨慎对待,因为无论出于何种原因,使用这种方法我都可能被拒绝。

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

于 2013-10-29T20:44:07.963 回答
-1

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

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

REST API 错误列表

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

  • CAPTIVE_CARBON_COPY_RECIPIENT_NOT_SUPPORTED
  • CAPTIVE_IN_PERSON_SIGNER_RECIPIENT_NOT_SUPPORTED
  • INVALID_CAPTIVE_RECIPIENT_OPERATION
  • RECIPIENT_NOT_CAPTIVE
于 2013-08-07T22:04:27.977 回答