2013-10-08 17 views
1

所以我又回來了。我的問題是這樣的: 我有複選框的笨視圖的DocuSign模板的數組:將Docusign模板數組添加到REST標頭

<?php 
    echo form_open('create_envelope'); 
    foreach ($response["envelopeTemplates"] as $envelopeTemplate) { ?> 
     <li><?php echo form_checkbox('templatearray[]', $envelopeTemplate["templateId"], FALSE), $envelopeTemplate["name"]; ?></li> 
<?php } ?> 

我試圖做的是模板添加到我們的REST頭請求:

$data = array(
    "accountId" => $accountId, 
    "emailSubject" => "Hello World!", 
    "emailBlurb" => "This comes from PHP", 
    "templateId" => "ID from template array here", 
    "templateRoles" => array(
     array(
      "tabs" => array(
      "textTabs" => array (
       array (
        "tabLabel" => "lic_num", 
        "value" => "$license_number" 
       ), 
       array (
        "tabLabel" => "ubi_num", 
        "value" => "$ubi_number" 
       ), 
       array (
        "tabLabel" => "tra_nam", 
        "value" => "$trade_name" 
       ) 
      ) 
     ), 
      "email" => "$applicant_email", 
      "name" => "$applicant_name", 
      "roleName" => "Applicant" 
     ) 
    ), 
    "status" => "sent" 
); 

這可能嗎?

編輯:所以我得到它的工作使用循環來獲取我的數據在請求中,但我遇到了一個有趣的問題。如果我在信封中放置一個或兩個模板,它會發送正常。如果我放入兩個以上,它會複製模板。這裏是我的複雜循環代碼:

$compTempArray = array(); 
$applicant_name = $this->input->post("applicant_name"); 
$applicant_email = $this->input->post("applicant_email"); 
$license_number = $this->input->post("license_number"); 
$ubi_number = $this->input->post("ubi_number"); 
$trade_name = $this->input->post("trade_name"); 
foreach($hello as $key => $value) { 
    if(sizeof($hello) > 1) { 
     for($i = 1; $i < sizeof($hello); $i++) { 
      $compTempArray[] = array("serverTemplates" => array(
       array(
        "sequence" => $i, 
        "templateId" => $value 
       ) 
      ), 
      "inlineTemplates" => array(
       array(
        "sequence" => $i, 
        "recipients" => array(
         "signers" => array(
          array(
           "tabs" => array(
              "textTabs" => array (
                  array ("tabLabel" => "lic_num", "value" => $license_number), 
                  array ("tabLabel" => "ubi_num", "value" => $ubi_number), 
                  array ("tabLabel" => "tra_nam", "value" => $trade_name) 
              ) 
           ), 
           "email" => "*********@*****.com", 
           "name" => $applicant_name, 
           "recipientId" => "1", 
           "roleName" => "Applicant" 
          ), 
         ) 
        ) 
       ) 
      )); 

     } 
     $data = array("accountId" => $accountId, 
         "emailSubject" => "Hello World!", 
         "emailBlurb" => "This comes from PHP", 
         "compositeTemplates" => $compTempArray, 
         "status" => "sent"); 
     } else { 
      $data = array("accountId" => $accountId, 
         "emailSubject" => "Hello World!", 
         "emailBlurb" => "This comes from PHP", 
         "templateId" => "$value", 
         "templateRoles" => array(
              array(
               "tabs" => array(
                  "textTabs" => array (
                      array ("tabLabel" => "lic_num", "value" => $license_number), 
                      array ("tabLabel" => "ubi_num", "value" => $ubi_number), 
                      array ("tabLabel" => "tra_nam", "value" => $trade_name) 
                  ) 
               ), 
               "email" => "*********@*****.com", 
               "name" => $applicant_name, 
               "roleName" => "Applicant" 

              ) 
             ), 
        "status" => "sent"); 
     } 
    } 

任何想法爲什麼會這樣做?

新的編輯:更新這一怪事:一到兩個 - 每個模板的一個副本,三 - 雙打每個模板,四量 - 這三倍的數額,五 - 它四倍的量。

最新編輯:因此,事實證明,這是我用來嘗試增加序列的for循環。我擺脫了循環,並將序列硬編碼爲1。

+0

當你說你試圖「將模板添加到我們的REST頭請求」時,你是什麼意思?你究竟想要完成哪項API調用? – Ergin

+0

信封創作。我們的創建信封頁面具有表單字段,用於解決我之前的問題,並顯示可供登錄用戶使用的模板,旁邊有複選框。用戶選擇他們想要放入信封中的模板(他們進入數組),填寫表單字段,然後他們將發送信封。我需要讓他們與請求一起出去。因此,而不是一個硬編碼templateId,我需要發送多個模板。那有意義嗎? – duckie715

回答

2

要將多個模板應用於單個信封,您需要使用compositeTemplates結構。

compositeTemplates可能會非常快速地變得複雜,但它們確實爲您的信封提供了很大的靈活性和功能。 API documentation是閱讀關於compositeTemplates的最佳地點,但如前所述,April 2012 Templates Webinar也是一個很好的資源。第三個示例提供了compositeTemplates的基本用法,它向您展示瞭如何將兩個服務器模板合併到一個信封中。你可以使用它作爲你的JSON的基礎。

要應用2個服務器模板它使用以下JSON單個信封:

{ 
    "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": "[email protected]", 
       "name": "John Doe", 
       "recipientId": "1", 
       "roleName": "RoleOne" 
       } 
      ] 
      } 
     } 
     ] 
    }, 
    { 
     "serverTemplates": [ 
     { 
      "sequence": "2", 
      "templateId": "44D9E888-3D86-4186-8EE9-7071BC87A0DA" 
     } 
     ], 
     "inlineTemplates": [ 
     { 
      "sequence": "2", 
      "recipients": { 
      "signers": [ 
       { 
       "email": "[email protected]", 
       "name": "Jane Doe", 
       "recipientId": "1", 
       "roleName": "RoleOne" 
       } 
      ] 
      } 
     } 
     ] 
    } 
    ] 
} 

注意,對於每個模板的sequence值確定模板應用到信封的順序。換句話說,序列值決定了文檔順序,但由於模板可能具有匹配/衝突的信息(例如就模板角色而言),序列值也可能會影響信封的最終結果。