我正在使用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"
);
答案 0 :(得分:3)
通过DocuSign API请求签名时,有两种常规方法:使用模板或使用本地文档。模板在服务器端保存了文档,本地文档方法要求您将文档字节作为请求的一部分上载。
这两个请求之间的主要区别之一是本地文档请求的Content-Type
为multipart/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"
}
]
}
}
]
}
]
}