2013-10-08 3 views
1

Итак, я вернулся. Моя проблема заключается в следующем: У меня есть массив DocuSign шаблонов из флажков в представлении CodeIgniter:Добавление массива шаблонов 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" 
); 

Возможно ли это?

EDIT: Поэтому я получил его для работы с использованием циклов, чтобы получить мои данные в запросе, но у меня возникает интересная проблема. Если я помещаю один или два шаблона в конверт, он отправляет штраф. Если я помещаю более двух, он дублирует шаблоны. Вот мой код для сложных циклов:

$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"); 
     } 
    } 

Любая идея, почему это будет сделано?

NEW EDIT: Обновления на этом странности: 1:59 - одна копии каждого шаблона, три - это удваивает количество каждого шаблона, четыре - это утраивает количество, пять - это вчетверо количество.

NEWEST EDIT: Итак, как оказалось, это был цикл for, который я использовал, чтобы попытаться увеличить последовательность. Я избавился от цикла и жестко закодировал последовательность до 1. Это исправило это.

+0

Что вы имеете в виду, когда говорите, что пытаетесь «добавить шаблоны в наш запрос заголовка REST»? Что именно вы пытаетесь выполнить и какой апи зов вы используете? – Ergin

+0

Создание конверта. На нашей странице создания конверта есть поля формы для моей предыдущей проблемы и отображаются шаблоны, доступные для зарегистрированных пользователей, рядом с которыми установлены флажки. Пользователь выбирает шаблоны, которые они хотят поместить в конверт (они входят в массив), заполняет поля формы, а затем отправляет конверт. Мне нужно, чтобы они вышли с просьбой. Поэтому вместо одного hardcoded 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 для каждого шаблона, который определяет порядок применения шаблона к оболочке. Другими словами, значение последовательности определяет порядок документа, но поскольку шаблоны могут иметь сопоставимую/противоречивую информацию (в терминах ролей шаблона для примера), значение последовательности также может влиять на конечный результат конверта.

Смежные вопросы