Docusign 使用 REST 重新发送

Docusign Resend with REST

所以这里有另一张票(已关闭)讨论如何执行此操作。但是,自从那张票得到答复后,一定发生了一些变化。 我遵循了 DocuSign 上非常稀疏的文档,但一直卡住了。 我完全按照这里的另一张票,但我仍然遇到无法解决的错误。我确实有几十个不同类型的电话都能正常工作,这是我试过的唯一一个(到目前为止)我无法开始工作的电话。

我有一个收件人丢失了他们的电子邮件。我需要重新发送给他们。无需对文档进行任何更改。

我对以下 URL 做了一个 'PUT': https://na4.docusign.net/restapi/v2/accounts/{Redacted}/envelopes/{Redacted}/recipients?resend_envelope=true

在正文中,我传递了对象'DocuSign.eSign.Model.Recipients' 有 1 个收件人,即丢失电子邮件的那个人。 (同样,状态是 'sent',我手动检查以确定)。为了便于记录,我将其包含在下面。

我收到以下错误。我无法克服这一点。错误听起来很明显。听起来收件人文档处于无法重发的状态,但事实并非如此。我已经验证了状态,我已经验证了帐户#是正确的,我已经验证了文档 ID 和收件人 ID 是正确的。只是不确定我还能检查什么。

我只需要重新发送这个,这个电话应该是正确的电话。根据文档,'PUT' 是正确的动词。

{
    "recipientUpdateResults": [
        {
            "recipientId": "1",
            "errorDetails": {
                "errorCode": "RECIPIENT_UPDATE_FAILED",
                "message": "The recipient could not be updated.
                    Recipient not in state that allows correction."
            }
        }
    ]
}

正在发送的文档正文。我已经尝试过使用 emailBody 和 emailSubject NULL 或原始值。两种方法都行不通。

{
    "signers": [
        {
            "email": "{Redacted}",
            "emailNotification": {
                "emailBody": "{Redacted}",
                "emailSubject": "{Redacted}"
            },
            "name": "{Redacted}",
            "recipientId": "1",
            "tabs": {
                "dateSignedTabs": [
                    {
                        "documentId": "1",
                        "pageNumber": "1",
                        "recipientId": "1",
                        "xPosition": "60",
                        "yPosition": "757"
                    }
                ],
                "signHereTabs": [
                    {
                        "documentId": "1",
                        "pageNumber": "1",
                        "recipientId": "1",
                        "xPosition": "50",
                        "yPosition": "652"
                    }
                ]
            }
        }
    ]
}

如果信封已经发送,这意味着它不再处于“草稿”状态,您不能再简单地修改它。 只有当信封处于“草稿”状态并且您的信封处于该状态时才能随意修改信封 - 您不会收到此错误。

发送信封后(“已发送”状态)您需要对任何更改使用特殊的正确操作。这可以通过将信封置于正确的状态并可能为用户提供正确的视图来启动 add/remove 收件人和标签。

更新: 如果您只是想重新发送信封,请确保请求的 JSON 正文为空 ({})。 C# 中的空对象可以解决问题...

更新 2: 需要使用 REST API v2.1 而不是 v2.0。