DocuSign REST API - 无法控制文档信封上的文档可见性?

DocuSign REST API - can't control Document Visibility on Envelopes from Documents?

Docusign REST API 描述了一种在从文档创建信封时控制文档可见性的方法:

https://docs.docusign.com/esign/restapi/Envelopes/Envelopes/create/

选项为enforceSignerVisibility。但是,当我尝试使用此选项时,可见性不受限制。我做错了什么吗?

我正在使用 PHP DocuSign 帮助程序库的修改版本(添加了一些 features/options)。

这是我创建的测试用例。在这种情况下,有两个签名者和两个文档。签名者 1 在文档 1 上签名,签名者 2 在文档 2 上签名。目标是签名者 1 只会看到文档 1,而签名者 2 只会看到文档 2。但是,下面的示例导致两个签名者看到两个文档:

代码

<?php

$client = new DocuSign_Client;
$service = new DocuSign_RequestSignatureService($client);

$documents = array( 
  new DocuSign_Document(
    "TestDoc1", 
    1,
    file_get_contents( $_SERVER['DOCUMENT_ROOT'].'/sandbox/ncg/test1.pdf' ) 
  ), 
  new DocuSign_Document(
    "TestDoc2", 
    2,
    file_get_contents( $_SERVER['DOCUMENT_ROOT'].'/sandbox/ncg/test2.pdf' ) 
  ) 
);

$signer1 = new DocuSign_Recipient( 
  1, 
  1, 
  "Signer 1", 
  "test.tfcornerstone+t1@gmail.com",
  NULL
);

$signer1->setTab("signHereTabs",array(
  "anchorYOffset" => "0",
  "anchorXOffset" => "0",
  "anchorString" => "[__[Signer1]__]",
  "anchorIgnoreIfNotPresent" => true,
) );


$signer2 = new DocuSign_Recipient( 
  1, 
  2, 
  "Signer 2", 
  "test.tfcornerstone+t2@gmail.com",
  NULL
);

$signer2->setTab("signHereTabs",array(
  "anchorYOffset" => "0",
  "anchorXOffset" => "0",
  "anchorString" => "[__[Signer2]__]",
  "anchorIgnoreIfNotPresent" => true,
) );

$recipients = array( $signer1, $signer2 );
$emailSubject = "Test Doc";
$emailBlurb = "Testing Visibility"; 
$status = 'sent'; // can be "created" or "sent"
$eventNotifications = new DocuSign_EventNotification(
  $url, //url
  false, //loggingEnabled
  false, //requireAcknowledgment,
  false, //useSoapInterface,
  NULL, //soapNameSpace,
  false, //includeCertificateWithSoap,
  false, //signMessageWithX509Cert,
  false, //includeDocuments,
  false, //includeTimeZone,
  false, //includeSenderAccountAsCustomField,
  NULL, //envelopeEvents,
  array( "Completed", "Sent" ) //recipientEvents 
);

$options = array(
  "enforceSignerVisibility" => true,
);

$response = $service->signature->createEnvelopeFromDocument( 
  $emailSubject,
  $emailBlurb,
  $status,
  $documents,                                                                
  $recipients,
  $eventNotifications,
  $options
);

d($response);

CURL 请求

Url: https://www.docusign.net/restapi/v2/accounts/XXXXX/envelopes

方法:POST

Headers:

--myboundary
Content-Type: application/json
Content-Disposition: form-data

{"emailSubject":"Test Doc","emailBlurb":"Testing Visibility","documents":[{"name":"TestDoc1","documentId":1},{"name":"TestDoc2","documentId":2}],"status":"sent","enforceSignerVisibility":true,"recipients":{"signers":[{"routingOrder":1,"recipientId":1,"name":"Signer 1","email":"test.tfcornerstone+t1@gmail.com","clientUserId":null,"tabs":{"signHereTabs":[{"anchorYOffset":"0","anchorXOffset":"0","anchorString":"[__[Signer1]__]","anchorIgnoreIfNotPresent":true}]},"embeddedRecipientStartUrl":null,"excludedDocuments":null},{"routingOrder":1,"recipientId":2,"name":"Signer 2","email":"test.tfcornerstone+t2@gmail.com","clientUserId":null,"tabs":{"signHereTabs":[{"anchorYOffset":"0","anchorXOffset":"0","anchorString":"[__[Signer2]__]","anchorIgnoreIfNotPresent":true}]},"embeddedRecipientStartUrl":null,"excludedDocuments":null}]},"eventNotification":{"loggingEnabled":false,"requireAcknowledgment":false,"useSoapInterface":false,"includeCertificateWithSoap":false,"signMessageWithX509Cert":false,"includeDocuments":false,"includeTimeZone":false,"includeSenderAccountAsCustomField":false,"recipientEvents":[{"recipientEventStatusCode":"Completed"},{"recipientEventStatusCode":"Sent"}]}}
<<PDF CONTENT>>--myboundary--

格式化JSON数据

{
  "emailSubject": "Test Doc",
  "emailBlurb": "Testing Visibility",
  "documents": [
    {
      "name": "TestDoc1",
      "documentId": 1
    },
    {
      "name": "TestDoc2",
      "documentId": 2
    }
  ],
  "status": "sent",
  "enforceSignerVisibility": true,
  "recipients": {
    "signers": [
      {
        "routingOrder": 1,
        "recipientId": 1,
        "name": "Signer 1",
        "email": "test.tfcornerstone+t1@gmail.com",
        "clientUserId": null,
        "tabs": {
          "signHereTabs": [
            {
              "anchorYOffset": "0",
              "anchorXOffset": "0",
              "anchorString": "[__[Signer1]__]",
              "anchorIgnoreIfNotPresent": true
            }
          ]
        },
        "embeddedRecipientStartUrl": null,
        "excludedDocuments": null
      },
      {
        "routingOrder": 1,
        "recipientId": 2,
        "name": "Signer 2",
        "email": "test.tfcornerstone+t2@gmail.com",
        "clientUserId": null,
        "tabs": {
          "signHereTabs": [
            {
              "anchorYOffset": "0",
              "anchorXOffset": "0",
              "anchorString": "[__[Signer2]__]",
              "anchorIgnoreIfNotPresent": true
            }
          ]
        },
        "embeddedRecipientStartUrl": null,
        "excludedDocuments": null
      }
    ]
  },
  "eventNotification": {
    "loggingEnabled": false,
    "requireAcknowledgment": false,
    "useSoapInterface": false,
    "includeCertificateWithSoap": false,
    "signMessageWithX509Cert": false,
    "includeDocuments": false,
    "includeTimeZone": false,
    "includeSenderAccountAsCustomField": false,
    "recipientEvents": [
      {
        "recipientEventStatusCode": "Completed"
      },
      {
        "recipientEventStatusCode": "Sent"
      }
    ]
  }
}

我不认为可以将 DocVis 设置为 "Off" 以便在 API 中强制执行它。在 Preferences -> Features 中,将 DocVis 下拉列表更改为 "Sender Can Set Must Sign To View Unless Sender Account" 并再次发出相同的请求。