如何确认 Docusign Connect 事件
How to acknowledge a Docusign Connect event
我正在使用 Docusign Connect 并愉快地接收事件。最近,我在查看文档时注意到了 requireAcknowledgement
标志,我正试图以混合成功的方式实现它。通常,当我收到一个连接事件时,我 return 一个空的 body 200。但是在翻转该标志后,事件将进入连接失败日志,并显示错误消息:"error": "https://scrubbed/ :: Error - Envelope Id returned does not match, returned data: 200 OK"
因此,按照诊断顺序:
- Docusign Connect 通常工作正常,我收到事件并发回一个空的 200
- 当我翻转
requireAcknowledgement
布尔值时,所有事件都进入连接失败日志,并出现有关信封 ID 不匹配的错误。由于我没有在 body 中发回信封 ID,这似乎是正确的
- 我找不到关于如何在确认中指定信封 ID 的文档。是 header 吗?是body中的xml吗?是json吗?是否只是遇到的第一个字符串?
- 如果我关闭
requireAcknowledgement
,我可以再次获得状态变化而没有其他变化。
这是我的连接配置:
{
"connectId": "xxx",
"urlToPublishTo": "https://{snip}/",
"name": "POST everything to test webhook",
"allowEnvelopePublish": "true",
"enableLog": "true",
"includeDocuments": "false",
"includeCertificateOfCompletion": "false",
"requiresAcknowledgement": "true",
"signMessageWithX509Certificate": "true",
"useSoapInterface": "false",
"includeTimeZoneInformation": "true",
"includeEnvelopeVoidReason": "false",
"includeSenderAccountasCustomField": "true",
"envelopeEvents": "Sent,Delivered,Signed,Completed,Declined,Voided",
"recipientEvents": "Sent,Delivered,Completed,Declined",
"soapNamespace": "",
"allUsers": "true",
"includeCertSoapHeader": "false"
}
感谢您的帮助!
DocuSign SDK 有一个很好的示例说明应该如何返回响应,这就是我在 Connect Listener 的基础上使用的示例并取得了巨大的成功(使用 .NET 版本)。
IIRC envelopeId
不是标准连接事件的要求,仅适用于您已设置为 false 的 useSoapInterface
。
取自 SDK 的示例代码
.ASPX Page
<form id="form1" runat="server">
<div>
<asp:Label ID="statusLabel" runat="server" Text="Label"></asp:Label>
</div>
</form>
.ASPX.CS Page
this.statusLabel.Text = "All is well. Wrote " + envelopeInfo.DocumentPDFs.Length + " documents";
在浏览连接日志时发现了这个。 Docusign 有自己的连接配置,这是他们作为确认发回的响应(给他们自己)。可能还有一个普通的 xml 版本,但我不知道。
注意:这通常不是必需的,只有在您使用 requireAcknowledgement 标志时才需要。关键是要向 Docusign 证明您不仅获得了数据,而且能够解析它并获得一些值。因此,如果您担心损坏或您的服务器因某种原因出现故障,它会很有帮助。
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:response>
<EnvelopeID>xxxx-xxxx-xxxx-xxxx</EnvelopeID>
</soap:response>
</soap:Body>
</soap:Envelope>
我正在使用 Docusign Connect 并愉快地接收事件。最近,我在查看文档时注意到了 requireAcknowledgement
标志,我正试图以混合成功的方式实现它。通常,当我收到一个连接事件时,我 return 一个空的 body 200。但是在翻转该标志后,事件将进入连接失败日志,并显示错误消息:"error": "https://scrubbed/ :: Error - Envelope Id returned does not match, returned data: 200 OK"
因此,按照诊断顺序:
- Docusign Connect 通常工作正常,我收到事件并发回一个空的 200
- 当我翻转
requireAcknowledgement
布尔值时,所有事件都进入连接失败日志,并出现有关信封 ID 不匹配的错误。由于我没有在 body 中发回信封 ID,这似乎是正确的 - 我找不到关于如何在确认中指定信封 ID 的文档。是 header 吗?是body中的xml吗?是json吗?是否只是遇到的第一个字符串?
- 如果我关闭
requireAcknowledgement
,我可以再次获得状态变化而没有其他变化。
这是我的连接配置:
{
"connectId": "xxx",
"urlToPublishTo": "https://{snip}/",
"name": "POST everything to test webhook",
"allowEnvelopePublish": "true",
"enableLog": "true",
"includeDocuments": "false",
"includeCertificateOfCompletion": "false",
"requiresAcknowledgement": "true",
"signMessageWithX509Certificate": "true",
"useSoapInterface": "false",
"includeTimeZoneInformation": "true",
"includeEnvelopeVoidReason": "false",
"includeSenderAccountasCustomField": "true",
"envelopeEvents": "Sent,Delivered,Signed,Completed,Declined,Voided",
"recipientEvents": "Sent,Delivered,Completed,Declined",
"soapNamespace": "",
"allUsers": "true",
"includeCertSoapHeader": "false"
}
感谢您的帮助!
DocuSign SDK 有一个很好的示例说明应该如何返回响应,这就是我在 Connect Listener 的基础上使用的示例并取得了巨大的成功(使用 .NET 版本)。
IIRC envelopeId
不是标准连接事件的要求,仅适用于您已设置为 false 的 useSoapInterface
。
取自 SDK 的示例代码
.ASPX Page
<form id="form1" runat="server"> <div> <asp:Label ID="statusLabel" runat="server" Text="Label"></asp:Label> </div> </form>
.ASPX.CS Page
this.statusLabel.Text = "All is well. Wrote " + envelopeInfo.DocumentPDFs.Length + " documents";
在浏览连接日志时发现了这个。 Docusign 有自己的连接配置,这是他们作为确认发回的响应(给他们自己)。可能还有一个普通的 xml 版本,但我不知道。
注意:这通常不是必需的,只有在您使用 requireAcknowledgement 标志时才需要。关键是要向 Docusign 证明您不仅获得了数据,而且能够解析它并获得一些值。因此,如果您担心损坏或您的服务器因某种原因出现故障,它会很有帮助。
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:response>
<EnvelopeID>xxxx-xxxx-xxxx-xxxx</EnvelopeID>
</soap:response>
</soap:Body>
</soap:Envelope>