我正在尝试使用DocuSign C# Client(DocuSign.eSign)的更新版本使现有信封无效。
信封处于已发送状态,尚未完成或无效。
目前我有以下代码:
EnvelopesApi envelopesApi = new EnvelopesApi();
Envelope envelope = envelopesApi.GetEnvelope(accountId, envelopeId);
envelope.Status = "voided";
envelope.VoidedReason = "This envelope was voided by " + currentUserName;
// create the recipient view (aka signing URL)
var updateSummary = envelopesApi.Update(accountId, envelopeId, envelope);
return updateSummary;
当调用此代码时,它会因ApiException和以下ErrorContent而失败:
{
"errorCode": "INVALID_REQUEST_PARAMETER",
"message": "The request contained at least one invalid parameter. Value for 'purgeState' must be 'documents_queued' or 'documents_and_metadata_queued'."
}
消息是“请求包含至少一个无效参数.'purgeState'的值必须是'documents_queued'或'documents_and_metadata_queued'”,但根据文档,我不需要提供那些参数如果状态是“无效的”,我有一个无效的理由。
有没有办法使用DocuSign C#Client取消信封?
答案 0 :(得分:5)
问题似乎是在加载信封并将其传递给API调用时,envelope.PurgeState设置为“未清除”。因此,即使我没有明确设置PurgeState,它也认为我尝试使用无效参数执行清除操作。
我能够通过显式取消设置envelope.PurgeState:
来解决这个问题envelope.Status = "voided";
envelope.VoidedReason = "This envelope was voided by " + currentUserName;
envelope.PurgeState = null;
答案 1 :(得分:1)
我知道这是一个老问题,但我想补充一点,您不需要调用API来获取原始信封对象,只需设置所需的属性并发送更新调用。
public EnvelopeUpdateSummary VoidRequest(string envelopeId, string message)
{
var envelope = new Envelope()
{
Status = "voided",
VoidedReason = message
};
var updateSummary = EnvelopesApi.Update(AccountId, envelopeId, envelope);
return updateSummary;
}
您可以查看文档:{{3}}
答案 2 :(得分:0)
您不能使处于终端状态的信封无效(即已完成或无效),您是否可以确认您试图取消的信封的状态?