DocuSign:复合模板

时间:2014-06-26 22:31:32

标签: docusignapi docusigncompositetmplts

我正在使用DocuSign API演练中的文档请求签名。我想要做的是定义一个具有特定字段的模板,然后将该模板应用于我通过此请求发送的文档。我遇到的问题是,当我将模板细节添加到代码中时,它会给出错误,信封不完整。

这是我用作参考的页面: http://iodocs.docusign.com/APIWalkthrough/requestSignatureFromDocument

我将一个模板定义为[[canidate_signature]]等字段作为锚点。在UI中,我可以使用该锚点上传文档,并分配我定义的模板,该模板非常有用。但是,我无法让API做同样的事情。

这是我在PHP中的JSON构建代码,它在没有compositeTemplate部分的情况下工作,但是一旦我添加,我就会收到错误。

信封不完整。完整信封需要文档,收件人,标签和主题行。

$data = array (
        "emailSubject" => "DocuSign API - Signature Request on Document"

        ,"compositeTemplates" => array(
                                    array(
                                        "serverTemplates" => 
                                            array(
                                                array(
                                                    "sequence" => 1,
                                                    "templateId" => "B1E2A5C9-9818-4BF0-AD9F-F4B1A3E2D39D"
                                                )
                                            )   
                                    )
                                )
        ,"documents" => array( 
                            array( 
                                "documentId" => "1"
                                ,"name" => $documentName
                            )
                            ,array(
                                "documentId" => "2"
                                ,"name" => $documentName
                            )
                        )
        ,"recipients" => array( 
                            "signers" => array(
                                            array(  
                                                "email" => $email,
                                                "name" => $recipientName,
                                                "recipientId" => "1"
                                            )
                                            ,array(  
                                                "email" => "***@gmail.com",
                                                "name" => "Scott Gmail",
                                                "recipientId" => "2"
                                            )
                                        )
                        )
    ,"status" => "sent"
);

1 个答案:

答案 0 :(得分:3)

通过DocuSign API请求签名时,有两种常规方法:使用模板或使用本地文档。模板在服务器端保存了文档,本地文档方法要求您将文档字节作为请求的一部分上载。

这两个请求之间的主要区别之一是本地文档请求的Content-Typemultipart/form-data,而从模板发送的请求的内容类型为application/json (或者,如果您使用的是XML格式,那么application/xml),因为您没有指定文档,只需要通过请求体指定属性。

您想要的是此API演练,通过模板签名请求,您需要修改发送的正文以包含compositeTemplates

http://iodocs.docusign.com/APIWalkthrough/requestSignatureFromTemplate

有关更多帮助,请参阅以下git repo,了解我去年举办的有关模板和复合模板的网络研讨会。特别是示例3是一个很好看的例子:

https://github.com/Ergin008/DocuSign-REST-API-Webinar-April2013

这是示例3用于compositeTemplates的示例请求正文:

{
  "emailSubject": "DocuSign Templates Webinar - Example 3",
  "emailBlurb": "Example #3 - Composite Templates",
  "status": "sent",
  "compositeTemplates": [
    {
      "serverTemplates": [
        {
          "sequence": "1",
          "templateId": "55A80182-2E9F-435D-9B16-FD1E1C0F9D74"
        }
      ],
      "inlineTemplates": [
        {
          "sequence": "1",
          "recipients": {
            "signers": [
              {
                "email": "firstrecipient@gmail.com",
                "name": "John Doe",
                "recipientId": "1",
                "roleName": "RoleOne"
              }
            ]
          }
        }
      ]
    },
    {
      "serverTemplates": [
        {
          "sequence": "2",
          "templateId": "44D9E888-3D86-4186-8EE9-7071BC87A0DA"
        }
      ],
      "inlineTemplates": [
        {
          "sequence": "2",
          "recipients": {
            "signers": [
              {
                "email": "secondrecipient@gmail.com",
                "name": "Jane Doe",
                "recipientId": "1",
                "roleName": "RoleOne"
              }
            ]
          }
        }
      ]
    }
  ]
}