DocUsignでコンポジットテンプレートを使用して封筒へのドキュメントを追加する
-
27-12-2019 - |
質問
DocuSign APIを使用して複合テンプレートにドキュメントを追加しようとしていて、文書はそれを期待する方法で封筒にロードされていません。私は現在、私のコードをテストJSONを使ってコンポジットテンプレートを使用せずにドキュメントを追加して完全に機能します。ただし、コンポジットテンプレートは文書の上にスキップされているようです。私がそれを作成している方法:
{
"emailSubject": "Test Email Subject_FA",
"emailBlurb": "Test Email Body_FA",
"status": "created",
"compositeTemplates": [
{
"inlineTemplates": [
{
"sequence": "1",
"recipients": {
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1",
"routingOrder": "1",
"roleName": "Client 1"
},
{
"email": "test2@gmail.com",
"name": "test2",
"recipientId": "2",
"routingOrder": "2",
"roleName": "Client 2"
}
],
"documents": [
{
"transformPdfFields": "false",
"name": "test0.pdf",
"documentId": "1"
}
]
}
}
]
},
{
"inlineTemplates": [
{
"sequence": "1",
"recipients": {
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1",
"routingOrder": "1",
"roleName": "Client 1"
},
{
"email": "test2@gmail.com",
"name": "test2",
"recipientId": "2",
"routingOrder": "2",
"roleName": "Client 2"
}
],
"documents": [
{
"transformPdfFields": "false",
"name": "test1.pdf",
"documentId": "2"
}
]
}
}
]
}
]
.
}
これは私がやっている少しテストですので、これが実用的ではない理解しています。しかし、私が理解しようとしているのは、これが封筒に文書を追加しないのです。以下の要求は私が上でやろうとしていることをします。
{
"emailSubject": "Test Email Subject_FA",
"emailBlurb": "Test Email Body_FA",
"status": "created",
"documents": [
{
"name": "test0.pdf",
"documentId": "1"
},
{
"name": "test1.pdf",
"documentId": "2"
},
{
"name": "test2.pdf",
"documentId": "3"
}
],
"recipients": {
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1",
"clientUserId": "1",
"signerName": "test1",
"defaultRecipient": "true",
"defaultRecipientSpecified": "true",
"routingOrder": "1"
},
{
"email": "test2@gmail.com",
"name": "test2",
"recipientId": "2",
"clientUserId": "2",
"signerName": "test2",
"routingOrder": "2"
}
]
}
.
}
複合テンプレートの封筒が文書をロードしないのかを知っていますか?
事前にありがとうございました!
更新:
これは複合テンプレートに対する私の要求です:
--MY_BOUNDARY
Content-Type: application/json
Content-Disposition: form-data
{
"emailSubject": "Test Email Subject_FA",
"emailBlurb": "Test Email Body_FA",
"status" : "created",
"compositeTemplates": [
{
"inlineTemplates": [
{
"sequence": "1",
"recipients":
{
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1"
},
{
"email": "test2@gmail.com",
"name": "test2",
"recipientId": "2"
}
],
"document":
{
"name": "test0",
"documentId": "1",
"fileExtension": "pdf"
}
}
}
]
},
{
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1"
},
{
"email": "test3@yahoo.com",
"name": "test3",
"recipientId": "2"
}
],
"document":
{
"name": "test1",
"documentId": "2",
"fileExtension": "pdf"
}
}
}
]
}
]
}
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="test0.pdf"; documentid="1"
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="test1.pdf"; documentid="2"
--MY_BOUNDARY--
.
私は名前とFileDAXTensionを使用するように文書を調整しましたので、私はこれを実装するもう1つの方法のようです。私はそれを両方の方法で試してみて、運がなかった。
解決
あなたが投稿した要求のjsonでは、文書オブジェクトのコレクション/配列として "文書"(複数)を指定しています - 正しくありません。 compositeTemplates 配列内の各コンポジットテンプレート項目は、最大で single ドキュメントのみを含むことしかできません。つまり、コンポジットテンプレート内の文書を指定するためのJSON構文は次のとおりです。
"document": {
"documentId": 1,
"name": "test1.pdf"
}
.
すなわち、文書は単数形であり、オブジェクト(オブジェクトの配列ではありません)です。 「コンポジットテンプレート」JSON要求の完全なリクエスト構文は、以前の質問の回答に表示されます。
テンプレートを適用する方法DocUsign REST API を使用して文書に
あなたの質問に「更新」:
「更新」の下で投稿した要求のJSON部分では、受信者オブジェクトの中に Document を含めたことに気付く(これは含まれています) inlinetemplates オブジェクト)内で - これは文書の正しい位置ではありません。あなたのJSON構造を以下の(正しい)構造と密接に比較し、それに応じてあなたの要求を調整してください。本質的に、文書は、イヌテンプレートのピアでなければならない
POST https://demo.docusign.net/restapi/v2/accounts/ACCOUNTNBR/envelopes HTTP/1.1
X-DocuSign-Authentication: {"Username":"USERNAME","Password":"PASSWORD","IntegratorKey":"INTEGRATORKEY"}
Content-Type: multipart/form-data; boundary=MY_BOUNDARY
Accept: application/json
Host: demo.docusign.net
Content-Length: 162100
--MY_BOUNDARY
Content-Type: application/json
Content-Disposition: form-data
{
"status" : "sent",
"emailSubject" : "Test Envelope Subject",
"emailBlurb" : "Test Envelope Blurb",
"compositeTemplates": [
{
"inlineTemplates": [
{
"sequence" : 1,
"recipients": {
"signers" : [{
"email": "abbysemail@outlook.com",
"name": "Abby Abbott",
"recipientId": "1"
}]
}
}],
"document": {
"documentId": 1,
"name": "CustomerAgreement",
"fileExtension": "pdf"
}
}]
}
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="CustomerAgreement.pdf"; documentid="1"
<document bytes removed>
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="Invoice.pdf"; documentid="2"
<document bytes removed>
--MY_BOUNDARY--
.