我们正在使用DocuSign SOAP API 3.0,并在我们的应用程序中使用以下方法:
public EnvelopeStatus[] GetDocuSignEnvelopes(DateTime beginDateTime)
{
var envelopeStatusFilter = new EnvelopeStatusFilter
{
AccountId = _client.DocuSignAccountId,
BeginDateTime = new EnvelopeStatusFilterBeginDateTime { Value = beginDateTime },
Statuses = new[] { EnvelopeStatusCode.Completed }
};
var envelopeStatuses = _docuSignApi.RequestStatusesWithDocumentFields(envelopeStatusFilter);
return envelopeStatuses.EnvelopeStatuses.OrderBy(x => x.Completed).ToArray();
}
在通过创建和完成信封执行测试时,此代码按原样运行,并返回包含一个信封的EnvelopeStatus数组。但是,如果我们立即再次调用此方法,则不会返回相同的信封。实际上,数组是空的。并且,是的,我们确保将beginDateTime设置为每次迭代创建包络之前的值。
因此,我的问题是...... DocuSign SOAP API是否以某种方式跟踪先前通过API检索到的包络,然后将其从结果集中排除?如果没有,那么为什么使用相同参数值的后续调用不会返回相同的结果吗?
如果此方法确实排除了结果,那很好,但我需要知道此排除的参数,以便在我们的代码中正确处理它们。例如,它是基于特定的积分器密钥,特定时间范围内的一定数量的呼叫等排除的吗?基本上,在什么情况下,排除的结果会被重新添加到结果集中?
接下来,如果我们在收到信封时遇到问题,我们确实需要从DocuSign API获取信封的“新清单”(即使它们过去可能已被检索过),我们谈谈这个?
答案 0 :(得分:0)
我从未亲自使用过这种SOAP操作,但我知道DocuSign在轮询信封状态方面确实存在一些限制,就允许轮询状态的频率而言。 DocuSign API最佳实践指南包含有关这些限制的详细信息:http://www.docusign.com/sites/default/files/SOAP_REST_API_Best_Practices_with_Connect_Guide.pdf
如果可能,最佳做法是使用DocuSign Connect(http://www.docusign.com/sites/default/files/DocuSign_Connect_Service_Guide.pdf)自动接收信封状态更改的事件通知,而不是使用API请求轮询状态。