Docusignapi Docusign.Net客户端并代表(SOBO)发送

Docusignapi Docusign.Net客户端并代表(SOBO)发送,docusignapi,Docusignapi,我正在尝试使用DocuSign的代表发送(SOBO)功能。我读过这篇文章,我知道有两种方法。使用OAuth获取访问令牌,然后与X-DocuSign-Act-As-User一起使用,或者在X-DocuSign-Authentication中使用SendOnBehalfOf元素 我也想使用DocuSign.NET客户端。通过阅读代码,我可以看到第一个选项不受支持(OAuth)。所以我选择了X-DocuSign-Authentication,它通过Account.SOBOUserId属性得到支持 Re

我正在尝试使用DocuSign的代表发送(SOBO)功能。我读过这篇文章,我知道有两种方法。使用OAuth获取访问令牌,然后与X-DocuSign-Act-As-User一起使用,或者在X-DocuSign-Authentication中使用SendOnBehalfOf元素

我也想使用DocuSign.NET客户端。通过阅读代码,我可以看到第一个选项不受支持(OAuth)。所以我选择了X-DocuSign-Authentication,它通过Account.SOBOUserId属性得到支持

RestSettings.Instance.IntegratorKey = "***";
        RestSettings.Instance.DocuSignAddress = "http://demo.docusign.net";
        RestSettings.Instance.WebServiceUrl = RestSettings.Instance.DocuSignAddress + "/restapi/v2";
        RestSettings.Instance.RestTracing = true;

        // credentials for sending account
        Account account = new Account();
        account.Email = "a@yopmail.com";
        account.Password = "****";
        account.SOBOUserId = "b@yopmail.com";

        // make the Login API call
        bool result = account.Login();

        Envelope envelope = new Envelope();

        envelope.Login = account;  // assign account info from above

        envelope.Recipients = new Recipients()
        {
            signers = new Signer[] { new Signer() {
                    email = "****@hotmail.com",
                    name = "Test",
                    routingOrder = "1",
                    recipientId = "1"
                }}
        };

        // "sent" to send immediately, "created" to save envelope as draft
        envelope.Status = "sent";
        envelope.EmailSubject = "DocuSign Test document";
        // create a new DocuSign envelope (i.e. server side)
        result = envelope.Create(@"C:\temp\dummyPDF.pdf");
我在DocuSign UI中做了必要的设置,以允许代表发送b@yopmail.com如文件所示。但是,当我运行此代码时,接收者收到来自的电子邮件a@yopmail.com而不是b@yopmail.com. 看起来索波根本不工作

我的问题是我可以使用DocuSign.Net客户端使用SOBO功能吗


谢谢。

似乎是因为DocuSign.NET客户端的缺陷,无法正常工作。如果查看github.com/docusign/docusign-.NET Client/blob/master/…method SetLogonCredentials,您将看到,如果AuthorizationFormat是Xml,则未将SendOnBehalfOf元素添加到authorization头中。我做了一个更改,将其强制为Json,它现在正在工作。

Envelope.Create(filepath)方法没有正确使用SOBOUserID字段。由于其他优先级的原因,它只是还没有添加到代码中。我已经添加了一个pull请求来解决这个问题,但与此同时,您可以按照我的方式解决这个问题,也可以使用另一个
Envelope.Create()
方法,该方法使用
byte
数组而不是filepath

请参见此处的问题和解决方案:

您可以发布您的帐户类别吗?我希望它是
account.SendOnBehalfOf
而不是
account.SOBOUserId
这似乎是因为DocuSign.NET客户端的缺陷,无法正常工作。如果查看方法SetLogonCredentials,您将看到,如果AuthorizationFormat是Xml,那么SendOnBehalfOf元素不会添加到authorization头中。我做了一个更改,将其强制转换为Json,现在可以使用了。代码是一个开源SDK。我想知道你是否能把那项更改提交给它。但我同意SOBOUserId在声明登录后不会发生任何事情