1

だから私はまた戻ってきました。私の問題はこれです:私はCodeigniterビューのチェックボックスからDocusignテンプレートの配列を持っています:

<?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"
);

これは可能ですか?

編集:ループを使用してリクエストでデータを取得するようにしましたが、興味深い問題が発生しています。テンプレートを 1 つまたは 2 つ封筒に入れれば、問題なく送信されます。2 つ以上入れると、テンプレートが複製されます。複雑なループのコードは次のとおりです。

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

なぜこれを行うのでしょうか?

新しい編集:この奇妙さの更新: 1 から 2 - 各テンプレートの 1 つのコピー、3 - 各テンプレートの量が 2 倍、4 - 量が 3 倍、5 - 量が 4 倍になります。

最新の編集: 結局のところ、シーケンスをインクリメントするために使用していたのは for ループでした。ループを取り除き、シーケンスを 1 にハードコードしました。これで修正されました。

4

1 に答える 1

2

複数のテンプレートを単一のエンベロープに適用するには、compositeTemplates構造を使用する必要があります。

compositeTemplates非常にすぐに複雑になる可能性がありますが、エンベロープに優れた柔軟性と機能性をもたらします。API ドキュメントは読むのに最適な場所ですがcompositeTemplates、前述のように、2012 年 4 月のテンプレート Webinarも優れたリソースです。3 番目の例は、compositeTemplates2 つのサーバー テンプレートを 1 つのエンベロープに結合する方法を示すという点で、 の基本的な使用法を示しています。これを JSON のベースとして使用できます。

2 つのサーバー テンプレートを 1 つのエンベロープに適用するには、次の 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": "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"
              }
            ]
          }
        }
      ]
    }
  ]
}

sequence各テンプレートの値によって、テンプレートをエンベロープに適用する順序が決まることに注意してください。言い換えれば、シーケンス値はドキュメントの順序を決定しますが、テンプレートには一致/矛盾する情報 (たとえば、テンプレートの役割に関して) がある可能性があるため、シーケンス値はエンベロープの最終結果にも影響を与える可能性があります。

于 2013-10-09T17:31:11.743 に答える