Docusignapi 如何设置web钩子以检查DocuSign信封状态?

Docusignapi 如何设置web钩子以检查DocuSign信封状态?,docusignapi,Docusignapi,我编写了代码,使用信封请求客户签名,如本教程所示: 我的问题是,如何定义可用于更新信封状态的web钩子URL?我希望收到通知,并能够在客户签署文件后更新数据库中的信封状态。这可能吗 EnvelopedDefinition类是否公开了一些允许我定义web钩子url的属性?有两种可能的方法 一种是在DS WebApp内设置帐户范围的连接配置,这将在发送/完成的每个信封上向URL发送请求的事件通知: 您还可以使用eventNotification参数定义每个信封。但是,参数不会烘焙到提供的配方中编辑

我编写了代码,使用信封请求客户签名,如本教程所示:

我的问题是,如何定义可用于更新信封状态的web钩子URL?我希望收到通知,并能够在客户签署文件后更新数据库中的信封状态。这可能吗


EnvelopedDefinition类是否公开了一些允许我定义web钩子url的属性?

有两种可能的方法

一种是在DS WebApp内设置帐户范围的连接配置,这将在发送/完成的每个信封上向URL发送请求的事件通知:


您还可以使用eventNotification参数定义每个信封。但是,参数不会烘焙到提供的配方中编辑:我被纠正了,请参见下面拉里的回复更新

我们现在有一系列新的推荐WebHook代码示例,它们使用无服务器功能和基于云的可靠排队服务。这些示例使您能够在防火墙内接收和处理DocuSign webhook通知,而无需更改filewall

示例现在可用于节点。正在编写C#、Java、PHP和Python的示例

  • AWS和Node.js示例
  • Azure和Node.js示例
  • googlecloud和Node.js示例
这个

注意连接指南(第2页上的2016年3月日期)很旧,在许多情况下都不正确。一本新的指南正在制作中。本指南对于XML格式信息非常有用

WSDL文件,包括通知消息格式

要查看返回的XML消息,以下是完整信封的示例通知:

<?xml version="1.0" encoding="utf-8"?>
<DocuSignEnvelopeInformation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.docusign.net/API/3.0">
<EnvelopeStatus>
    <RecipientStatuses>
    <RecipientStatus>
        <Type>Signer</Type>
        <Email>signer_email@example.com</Email>
        <UserName>Signer's name</UserName>
        <RoutingOrder>1</RoutingOrder>
        <Sent>2020-05-23T12:43:07.22</Sent>
        <Delivered>2020-05-23T12:43:14.767</Delivered>
        <Signed>2020-05-23T12:43:18.22</Signed>
        <DeclineReason xsi:nil="true"/>
        <Status>Completed</Status>
        <RecipientIPAddress>141.226.182.70</RecipientIPAddress>
        <ClientUserId>1000</ClientUserId>
        <CustomFields/>
        <TabStatuses>
        <TabStatus>
            <TabType>SignHere</TabType>
            <Status>Signed</Status>
            <XPosition>427</XPosition>
            <YPosition>531</YPosition>
            <TabLabel>Sign Here</TabLabel>
            <TabName>SignHere</TabName>
            <TabValue/>
            <DocumentID>1</DocumentID>
            <PageNumber>1</PageNumber>
        </TabStatus>
        </TabStatuses>
        <AccountStatus>Active</AccountStatus>
        <RecipientId>56e11847-da17-43c3-95f6-d4b675af8621</RecipientId>
    </RecipientStatus>
    </RecipientStatuses>
    <TimeGenerated>2020-05-23T12:43:38.7282968</TimeGenerated>
    <EnvelopeID>cd67ff4a-6cb1-42f3-87d3-f7c149031549</EnvelopeID>
    <Subject>Please sign the attached document</Subject>
    <UserName>Larry Kluger</UserName>
    <Email>larry@worldwidecorp.us</Email>
    <Status>Completed</Status>
    <Created>2020-05-23T12:43:06.753</Created>
    <Sent>2020-05-23T12:43:07.253</Sent>
    <Delivered>2020-05-23T12:43:14.83</Delivered>
    <Signed>2020-05-23T12:43:18.22</Signed>
    <Completed>2020-05-23T12:43:18.22</Completed>
    <ACStatus>Original</ACStatus>
    <ACStatusDate>2020-05-23T12:43:06.753</ACStatusDate>
    <ACHolder>Larry Kluger</ACHolder>
    <ACHolderEmail>larry@worldwidecorp.us</ACHolderEmail>
    <ACHolderLocation>DocuSign</ACHolderLocation>
    <SigningLocation>Online</SigningLocation>
    <SenderIPAddress>208.113.165.37 </SenderIPAddress>
    <EnvelopePDFHash/>
    <CustomFields>
    <CustomField>
        <Name>Team</Name>
        <Show>True</Show>
        <Required>False</Required>
        <Value/>
    </CustomField>
    <CustomField>
        <Name>Office</Name>
        <Show>True</Show>
        <Required>False</Required>
        <Value/>
    </CustomField>
    <CustomField>
        <Name>Order ID</Name>
        <Show>True</Show>
        <Required>False</Required>
        <Value/>
    </CustomField>
    <CustomField>
        <Name>AccountId</Name>
        <Show>false</Show>
        <Required>false</Required>
        <Value>4197223</Value>
        <CustomFieldType>Text</CustomFieldType>
    </CustomField>
    <CustomField>
        <Name>AccountName</Name>
        <Show>false</Show>
        <Required>false</Required>
        <Value>World Wide Corp</Value>
        <CustomFieldType>Text</CustomFieldType>
    </CustomField>
    <CustomField>
        <Name>AccountSite</Name>
        <Show>false</Show>
        <Required>false</Required>
        <Value>demo</Value>
        <CustomFieldType>Text</CustomFieldType>
    </CustomField>
    </CustomFields>
    <AutoNavigation>true</AutoNavigation>
    <EnvelopeIdStamping>true</EnvelopeIdStamping>
    <AuthoritativeCopy>false</AuthoritativeCopy>
    <DocumentStatuses>
    <DocumentStatus>
        <ID>1</ID>
        <Name>Example document</Name>
        <TemplateName/>
        <Sequence>1</Sequence>
    </DocumentStatus>
    </DocumentStatuses>
</EnvelopeStatus>
<TimeZone>Pacific Standard Time</TimeZone>
<TimeZoneOffset>-7</TimeZoneOffset>
</DocuSignEnvelopeInformation>

签字人
签字人_email@example.com
签名人姓名
1.
2020-05-23T12:43:07.22
2020-05-23T12:43:14.767
2020-05-23T12:43:18.22
完整的
141.226.182.70
1000
签名处
签署
427
531
在这里签名
签名处
1.
1.
活跃的
56e11847-da17-43c3-95f6-d4b675af8621
2020-05-23T12:43:38.7282968
cd67ff4a-6cb1-42f3-87d3-f7c149031549
请在附件上签字
拉里·克鲁格
larry@worldwidecorp.us
完整的
2020-05-23T12:43:06.753
2020-05-23T12:43:07.253
2020-05-23T12:43:14.83
2020-05-23T12:43:18.22
2020-05-23T12:43:18.22
起初的
2020-05-23T12:43:06.753
拉里·克鲁格
larry@worldwidecorp.us
记录
在线 的
208.113.165.37 
团队
真的
假的
办公室
真的
假的
订单号
真的
假的
帐户ID
假的
假的
4197223
正文
帐户名
假的
假的
环球公司
正文
会计网站
假的
假的
演示
正文
真的
真的
假的
1.
示例文件
1.
太平洋标准时间
-7
测试“侦听器”的另一种方法是使用

在那里,您将看到POST请求以及信封的完整XML正文

首先测试创建信封

在测试我的侦听器之前,我想确认我的C#代码是否会触发DocuSign信封中的WebHook(通过EnvelopedeDefinition.EventNotification)

EnvelopedDefinition.EventNotification为EnvelopeeEvent和RecipientEvents设置2个对象列表。正确配置这些将触发DocuSign Connect(Webhook)中的触发器

只需设置EventNotification.Url=在上为我创建的自定义Url

我在本地运行我的C#API代码来创建一个DocuSign信封,它将触发Webhook。然后我使用DocuSign电子邮件(在创建信封后收到)对文档进行签名,这再次向我的测试侦听器触发了Webhook

获取XML 我正确配置的代码触发了DocuSign Connect(Webhook)POST事件。我可以在我的自定义URL上看到POST请求(及其XML正文)

重新发送XML
最后,复制从DocuSign发送的POST请求XML,并将该XML粘贴到PostMan中。然后我可以在本地使用PostMan“重新发送”POST请求(和XML正文),以测试我正在开发的本地侦听器API。

这很好,但我看到它返回某种XML。有没有什么地方可以看到这个XML的样子?如果我看不到将要发布到我的web钩子方法中的内容,那么编写一个方法来处理这个问题就有点困难了……请参阅我的修订版answer@LarryK链接被破坏了。。。我一直在到处寻找这个XML模式。@DanBeaulieu我已经更新了链接并添加了WSDL链接。@Zander先生——谢谢你的评论。请参阅使用示例XML更新的答案。