当前位置: 首页 > 知识库问答 >
问题:

Docusign API-嵌入式签名的问题

雷献
2023-03-14
   $data = array(

        'accountId' => $accountId,
        'documents' => array(
            array(
                'documentId' => '1',
                'name' => 'document.pdf'
                )
            ),
        'recipients' => array(
            'signers' => array( array(
                    array(
                        'tabs' => array(
                            'signHereTabs' => array(
                                array(
                                    "pageNumber" => "1",
                                    "documentId" => "1",
                                    "yPosition" => "100",
                                    "xPosition" => "100",
                                )
                            )
                        )
                    ),
                'routingOrder'=> '1',
                'recipientId'=> '1',
                'clientUserId'=> $clientUserId,
                'name'=> 'Signer 1',
                'email'=> 'something@gmail.com'
                ))
            )
            );

    $json_data = json_encode($data);

    $file_contents =                 
    file_get_contents("document.pdf");

    $requestBody = "\r\n"
    ."\r\n"
    ."--myboundary\r\n"
    ."Content-Type: application/json\r\n"
    ."Content-Disposition: form-data\r\n"
    ."\r\n"
    ."$json_data\r\n"
    ."--myboundary\r\n"
    ."Content-Type:application/pdf\r\n"
    ."Content-Disposition: file; filename=\”document.pdf\"; documentid=1 \r\n"
    ."\r\n"
    ."$file_contents\r\n"
    ."--myboundary--\r\n"
    ."\r\n";

    // *** append "/envelopes" to baseUrl and as signature request endpoint
    $curl = curl_init($baseUrl . "/envelopes" );
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $requestBody);                                                                  
    curl_setopt($curl, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: multipart/form-data;boundary=myboundary',
    'Content-Length: ' . strlen($requestBody),
    "X-DocuSign-Authentication: $header" )                                                                       
    );

然后发送它以获取签名视图的收件人url:

$data = array("returnUrl" => "http://quidfs.bfclients.com/dashboard",
            "authenticationMethod" => "None",
            "email" => 'something@gmail.com', 
            "userName" => 'Signer 1',
            "clientUserId" => $clientUserId,
        );                                                                    


$data_string = json_encode($data);                                                                                   

$curl = curl_init($baseUrl . "/envelopes/$envelopeId/views/recipient" );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);                                                                  
curl_setopt($curl, CURLOPT_HTTPHEADER, array(                                                                          
            'Content-Type: application/json',                                                                                
            'Content-Length: ' . strlen($data_string),
            "X-DocuSign-Authentication: $header" )                                                                       
        );

有什么想法吗?提前谢了。

共有1个答案

王昆
2023-03-14

我没有看到你在你的请求中指定一个状态,所以我想这可能是你的问题。如果在创建信封时没有指定信封的状态,我相信系统默认情况下会将信封保存为草稿,而不是立即发送。

接受的两个状态值是createdsend。如果将状态设置为Created,则会保存到草稿文件夹中,以便稍后发送。将状态设置为send将立即发送请求。

尝试将其添加到请求主体中,类似于:

$data = array(
    'status' => 'sent',
    'accountId' => $accountId,
    'documents' => array(
        array(
            'documentId' => '1',
            'name' => 'document.pdf'
            )
        ),
    'recipients' => array(
        'signers' => array( array(
                array(
                    'tabs' => array(
                        'signHereTabs' => array(
                            array(
                                "pageNumber" => "1",
                                "documentId" => "1",
                                "yPosition" => "100",
                                "xPosition" => "100",
                            )
                        )
                    )
                ),
            'routingOrder'=> '1',
            'recipientId'=> '1',
            'clientUserId'=> $clientUserId,
            'name'=> 'Signer 1',
            'email'=> 'something@gmail.com'
            ))
        )
    );
 类似资料:
  • 我使用的是嵌入式签名代码配方中的代码,但从C#转换为VB.NET,代码使用的是Docusign API nuget。CreateEnvelope返回user_lacks_permissions。我已经通过了我的权限,检查了一切。我登录的用户是帐户管理员,似乎已经检查了所有权限。我将收件人电子邮件设置为实际的收件人电子邮件(不同于我的管理员帐户),尽管它是嵌入式签名,我不知道这是否是问题所在。我确实

  • 两部分问题: 我们正在尝试接收一个文档准备签名的通知(我们不完全清楚通知中提供了什么)。我们不想做电子邮件通知;我们想关掉那些。我们假定嵌入签名的信息包含在非电子邮件通知中。是否有一种简单的方法向另一个程序发送推送通知,说明文档已经准备好发送,如果是这样,是否最好的方法跟踪通知,让签名API发布并从DocuSign请求信息? 在我们的测试中,我们已经能够通过API调用接收嵌入的签名URL,但它将我

  • 我们在我们的应用程序中使用上述API进行嵌入式签名,其中应用程序将收件人重定向到由该API返回的URL。 现在主要的问题是,如果用户正在使用IE11,而这个API返回的URL超出了IE11 URL限制,会发生什么,这个变化对IE11用户是否有效?如果没有,那么IE11用户如何使用嵌入式签名功能?

  • 我的要求是:在网站上,用户可以点击[我们的]平台上的签名按钮,直接弹出要签名的文档并在文档上签名 目前,根据DocuSign嵌入式发送和签名文档,我们使用JWT admin授权方法获取访问权\uu用户可以通过文档“envelopeviews:create recipient”打开并签署文档URL, 问题: 如果我们直接复制DocuSign URL并在浏览器中打开它,页面将正确显示要签名的文档页面。

  • 真正的问题是docusign允许我在没有签名的情况下“完成”,因为文档是以自由形式显示的-请在下面找到我的代码-我使用docusign REST API使用/envelets/{envelopeID}/views/recipition调用为预定义的文档模板创建嵌入式签名。我正在使用RESTSHARP连接到DocuSign。非常感谢你的帮助! }