当前位置: 首页 > 知识库问答 >
问题:

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

经兴安
2023-03-14

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

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

选项是enforcesignervisibility。然而,当我尝试使用此选项时,可见性并不受限制。我做错什么了吗?

我使用的是PHP DocuSign helper库的修改版本(添加了一些特性/选项)。

<?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);

标题:

--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"
      }
    ]
  }
}

共有1个答案

孔权
2023-03-14

我不相信DocVis可以设置为“off”以便在API中强制执行。在Preferences->特性中,将DocVis下拉菜单改为“发件人可以设置必须签名才能查看,除非发件人帐户”,并给同样的请求另一次机会。

 类似资料:
  • 运行api服务后,我的swagger文档位于localhost: port/docs。这将显示我所有的api。无论如何,是否只显示某些api或某些标签下的api? 也许某个标签下的所有api都有不同的文档url? 我正在用快递运行它。

  • 我正在NetSuite中构建一个动态的PDF。我想使用DocuSign REST API将它上传到一个新的DocuSign信封。我看过很多答案,但我少了点什么。我发现自己在API和在线上兜圈子。 在用于[创建信封][1]的DocuSign REST API中,它详细说明了如何将文档添加到信封中,特别是使用documents节点:

  • 我使用的是一个启用文档可见性的复合模板。 可以通过参数将签名者从没有标签的文档中正确地排除,也可以显式地将签名者从没有标签的文档中排除。 我的问题是:发件人(我)无法查看信封中发件人不是收件人的文档之一。根据文档: 部分请求,包括有问题的文档。您可以看到发件人如何不是此文档的收件人。

  • info跟在根元素之后,用来放置一些文件信息 <info> <title>文章</title> <author>作者</author> <address>地址</address> <copyright><year>2008</year><holder>所有者</holder></copyright> </info>

  • 作业控制语言(JCL)是多虚拟存储(MVS)的命令语言,它是 IBM 大型机计算机中常用的操作系统。 JCL 识别要执行的程序,所需的输入和输入/输出的位置,并通过作业控制语句通知操作系统。

  • Windows 操作系统通过将用户帐户和组成员身份匹配与其关联的权利、特权和权限,帮助防止在未经授权的情况下使用文件、应用程序和其他资源。