You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移至OAuth后,Docusign EnvelopesAPI(PHP)重发信封遇ENVELOPE_NOT_DRAFT错误

DocuSign eSign EnvelopesAPI(PHP)迁移OAuth后重发信封报错问题

问题描述

原有运行多年的PHP遗留代码,使用DocuSign eSign EnvelopesAPI触发信封重发,迁移至OAuth并更新API库后,调用重发接口时出现400错误:

请求服务器时出错,收到非成功HTTP状态码[400],响应体如下:
O:8:"stdClass":2:{s:9:"errorCode";s:18:"ENVELOPE_NOT_DRAFT";s:7:"message";s:113:"The requested envelope is not a draft. Not able to update envelope properties in an envelope that is not a draft.";}

当前信封并非草稿,但此前非草稿状态下重发操作一直正常。原有调用代码如下:

$options = ["advanced_update" => NULL, "resend_envelope" => true];
$envelopeApi->update($accountId, $envelopeId, $envelope, $options);

原因分析

这是DocuSign API后续版本的规范调整:旧版API中update接口的resend_envelope参数存在设计疏漏,允许对非草稿信封执行重发操作;但新版本API明确了接口职责,update接口仅用于修改草稿状态信封的属性,非草稿信封的重发需使用专门的重发接口。

解决方案

替换原有update调用为resendEnvelope方法,这是DocuSign为非草稿信封重发提供的标准接口:

// 初始化重发选项(可选自定义邮件主题、正文)
$resendOptions = new \DocuSign\eSign\Model\ResendEnvelopeOptions();
$resendOptions->setEmailSubject('重新发送签署请求');
$resendOptions->setEmailBlurb('请完成这份文档的签署');

// 调用重发接口
$envelopeApi->resendEnvelope($accountId, $envelopeId, $resendOptions);

如果不需要自定义邮件内容,也可以直接传入空的选项对象:

$envelopeApi->resendEnvelope($accountId, $envelopeId, new \DocuSign\eSign\Model\ResendEnvelopeOptions());

内容的提问来源于stack exchange,提问作者Geoff Maddock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:55:28