我已经成功实现了一个系统,该系统使用.NET API通过模板创建要签名的文档,然后有一个DocuSign Connect监听器,在信封签名时调用(现在只有信封签名和下降)。我在DocuSign Connect设置中将选项设置为“包含文档”。当我使用一个签名者以编程方式创建签名信封时,一切正常 - 我的Connect监听器被调用, / DocuSignEnvelopeInformation / DocumentPDF / PDFBytes 元素中包含Base64数据,我已成功解码并存储它在我们的文档管理系统中。凉。演示很好,管理层喜欢它。
但是,我注意到至少有两种情况根本没有返回 / DocuSignEnvelopeInformation / DocumentPDF 部分:
当有多个签名者时。
手动创建信封时,即使它使用相同的模板。
我仍然可以使用Connect响应来获取 / DocuSignEnvelopeInformation / EnvelopeStatus / DocumentStatuses 并从 DocumentStatus 子元素中提取文档ID,然后以编程方式检索它们使用.NET API。但我想知道为什么PDF字节不会一直返回?以上是预期的行为吗?我错过了什么吗?
我宁愿保存“往返”,只需让Connect在调用时将所有已签名的PDF文件发送给我(是的,我已阅读 接收文档的建议部分> DocuSign Connect Guide 并了解权衡。只是想知道我是否需要围绕这个问题编码,或者我缺少什么?
答案 0 :(得分:0)
嗯。信封不会被“签名”,而是“发送”和“完成”。请参阅Connect::Create call中的envelopeEvents与recipientEvents列表。
目前,存在一个问题,即如果事件很快被另一个事件取代,则连接守护程序可能会错过该事件。这可能是当你有一个信封的多个签名者时发生的事情。最安全的做法是订阅所有事件,然后忽略您不感兴趣的通知。
如果您订阅了信封的终端事件将永久发送。
另外,为了使您的应用更具防弹性,我建议通过API调用(链接在上面)订阅Connect事件,而不是依赖于人来正确设置订阅。由于帐户可以轻松拥有多个连接订阅,因此您可以使用订阅的特定名称来跟踪哪个是您的应用。
<强>加强>
刚才,我为demo.docusign.net上我帐户中的所有用户创建了Envelope Completed事件的Connect订阅。作为订阅(监听者)网址,我使用了requestb.in
中的免费帐户使用网络用户界面(不是API),我创建了一个包含两个签名者的信封。在我完成信封后,requestb.in收到了通知,其中包括:
<DocumentPDFs>
<DocumentPDF>
<Name>House architectural overview.pdf</Name>
<PDFBytes>....
正如所料。所以我无法重现你的问题。我建议您使用requestb.in来仔细检查通知消息中发送的内容。