需要将DocuSign信封通过电子邮件发送给多个收件人以进行签名

时间:2016-08-08 15:12:43

标签: php docusignapi

正如标题中所述,我正在使用PHP中的DocuSign REST API来开发一个Web应用程序,该应用程序将从表单(POST)中获取信息以构建DocuSign信封,最终需要由其电子邮件的收件人签名在表格中指定。除了当前正在使用该应用的用户外,该用户将立即签名。

建筑要求:

    $data = array (
        'emailSubject' => 'DocuSign REST API Quickstart Sample',
        'emailBlurb' => 'Shows how to create and send an envelope from a document.',
        'recipients' => array (
            'signers' => array (
                0 => array (
                    'email' => $recipientEmail1,
                    'name' => $recipientName1,
                    'clientUserId' => '1234',
                    'recipientId' => '1',
                    'routingOrder' => '1',
                    'tabs' => array (
                        'signHereTabs' => array (
                            0 => array (
                                'xPosition' => '100',
                                'yPosition' => '600',
                                'documentId' => '1',
                                'pageNumber' => '1',
                                'value' => $recipientName1
                            )
                        ), 
                        'dateSignedTabs' => array (
                            0 => array (
                                'xPosition' => '250',
                                'yPosition' => '600',
                                'documentId' => '1',
                                'pageNumber' => '1'
                            )
                        ),
                        "textTabs" => array(
                            0 => array(
                                'xPosition' => '200',
                                'yPosition' => '300',
                                'documentId' => '1',
                                'pageNumber' => '1',
                                "tabLabel"=> "animal",
                                "value" => $animal
                            ),
                            1 => array(
                                'xPosition' => '200',
                                'yPosition' => '400',
                                'documentId' => '1',
                                'pageNumber' => '1',
                                "tabLabel"=> "color",
                                "value" => $color
                            ),
                            2 => array(
                                'xPosition' => '200',
                                'yPosition' => '500',
                                'documentId' => '1',
                                'pageNumber' => '1',
                                "tabLabel"=> "number",
                                "value" => $number
                            )
                        )
                    )   
                ),
                1 => array (
                    'email' => $recipientEmail2,
                    'name' => $recipientName2,
                    'clientUserId' => '2345',
                    'recipientId' => '2',
                    'routingOrder' => '2',
                    'tabs' => array (
                        'signHereTabs' => array (
                            0 => array (
                                'xPosition' => '200',
                                'yPosition' => '600',
                                'documentId' => '1',
                                'pageNumber' => '1',
                                'value' => $recipientName2
                            )
                        ), 
                        'dateSignedTabs' => array (
                            0 => array (
                                'xPosition' => '250',
                                'yPosition' => '600',
                                'documentId' => '1',
                                'pageNumber' => '1'
                            )
                        ),
                        "textTabs" => array(
                            0 => array(
                                'xPosition' => '200',
                                'yPosition' => '300',
                                'documentId' => '1',
                                'pageNumber' => '1',
                                "tabLabel"=> "animal",
                                "value" => $animal
                            ),
                            1 => array(
                                'xPosition' => '200',
                                'yPosition' => '400',
                                'documentId' => '1',
                                'pageNumber' => '1',
                                "tabLabel"=> "color",
                                "value" => $color
                            ),
                            2 => array(
                                'xPosition' => '200',
                                'yPosition' => '500',
                                'documentId' => '1',
                                'pageNumber' => '1',
                                "tabLabel"=> "number",
                                "value" => $number
                            )
                        )
                    )   
                )
            )
        ),'documents' => array (
            0 => array (
                'documentId' => '1',
                'name' => 'test.pdf',
                'documentBase64' => base64_encode(file_get_contents($documentName)),
            )
        ),'status' => 'sent',
    );

签署视图

    $data = array(
        "returnUrl" => "http://www.docusign.com/devcenter",
        "authenticationMethod" => "None",
        "userName" => $recipientName1,
        'clientUserId' => '1234',
        "email" => $recipientEmail1
    ); 

2 个答案:

答案 0 :(得分:1)

如果您为收件人指定clientUserID,那么您将使用嵌入式签名创建信封。如果您希望DocuSign向收件人生成电子邮件以通知他们开始签名体验,您应该探索远程签名。如果从每个签名者中删除clientUserID参数,您将获得远程签名体验。

答案 1 :(得分:0)

因此,您有多个收件人签署信封,并且您希望第一个收件人立即使用您的网站或应用中的Embedded Signing签名,其余的将是通过电子邮件发起签名的远程收件人是吗?

如果是这样,您只需要将clientUserId设置为第一个收件人的非空值(就像您现在一样),然后不要为后续收件人设置或甚至包含该属性将通过电子邮件签名。

设置clientUserId属性告诉DocuSign平台,收件人将签署嵌入式签名,不向他们发送电子邮件。将收件人添加到信封并且信封为sent后,您需要为每个将以嵌入式方式登录的收件人进行唯一的API调用,但由于它只是您的信封中的一个您只需要进行一次额外的API调用(以生成收件人视图)。

因此,您的API调用流程应该基本上是:

  1. 使用嵌入的第一个收件人创建并发送信封,保持远程。
  2. 为第一个收件人生成嵌入式签名(收件人视图),并通过重定向,webview或可怕的iFrame加载。
  3. DONE
  4. 如果您为后续收件人配置了routingOrder,我会在您的代码中看到,那么该平台将负责剩余的收件人(即生成签名链接并在收到通知时通过电子邮件发送通知。 ;轮到路线顺序了。)

    了解更多信息:DocuSign Developer Center