php - 预填充文档签名模板字段

标签 php codeigniter rest docusignapi

因此,当从自定义界面提交文档时,我尝试在 DocuSign 模板中预填充某些字段,但请求似乎无法在模板中找到它们。我们正在使用 REST、cURL 和 Codeigniter。我的数据数组如下:

$data = array("accountId" => $accountId,
    "emailSubject" => "Hello World!",
    "emailBlurb" => "This comes from PHP",
    "templateId" => "********-****-****-****-************",
    "templateRoles" => array(
                           array(
                               "email" => "****@******.com",
                               "name" => "**** *****",
                               "roleName" => "LC3"
                           ),
                           array(
                               "email" => $this->input->post("applicant_email"),
                               "name" => $this->input->post("applicant_name"),
                               "roleName" => "Applicant",
                               "tabStatuses" => array(
                                                    "textTabs" => array (
                                                                      array (
                                                                          "tabLabel" => "lic_num",
                                                                          "tabValue" => $this->input->post("license_number")
                                                                      ),
                                                                      array (
                                                                          "tabLabel" => "ubi_num",
                                                                          "tabValue" => $this->input->post("ubi_number")
                                                                      ),
                                                                      array (
                                                                          "tabLabel" => "tra_nam",
                                                                          "tabValue" => $this->input->post("trade_name")
                                                                      )
                                                                   )
                                                 )
                            )
                      ),
    "status" => "sent"); 

我尝试使用选项卡而不是 tabStatuses,但这也不起作用,并且我们的 XML 响应使用 TabStatuses 而不是选项卡。自从 API 演练发布以来,有什么变化吗?

编辑:因此,在使用 Chrome 的 Postman 扩展进行多次试验和错误之后,这是我实际上没有出错的 JSON 请求:

{
    "accountId":"c771ba8c-2947-4bec-acab-15b1b48a11b6",
    "emailSubject":"Hello World!",
    "emailBlurb":"This comes from PHP",
    "templateId":"B96D0480-8792-43E8-AE11-E2AEAC74E601",
    "templateRoles":[
        {
            "email":"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="781511131d381b14170d1c080f0a561b1715" rel="noreferrer noopener nofollow">[email protected]</a>",
            "name":"Mike Longmire",
            "roleName":"LC3",
            "tabStatuses":[
                {
                    "tabStatus":[
                        {
                            "tabLabel":"lic_num",
                            "tabValue":"1111"
                        },
                        {
                            "tabLabel":"ubi_num",
                            "tabValue":"2222"
                        },
                        {
                            "tabLabel":"tra_nam",
                            "tabValue":"Flakey"
                        }
                     ]
                 }
             ],
             "email":"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="305445535b595507010570575d51595c1e535f5d" rel="noreferrer noopener nofollow">[email protected]</a>",
             "name":"Mike Longmire",
             "roleName":"Applicant"
        }
     ],
    "status":"sent"
}

我得到了同样的回复:

{
    "envelopeId": "0063d398-36b7-4e2f-8515-6ed9ab62aaeb",
    "uri": "/envelopes/0063d398-36b7-4e2f-8515-6ed9ab62aaeb",
    "statusDateTime": "2013-10-08T18:05:54.9926661Z",
    "status": "sent"
}

有什么想法吗?

最佳答案

这很可能是由于 JSON 内的函数调用返回的值没有用引号 (") 标记引起的。为了测试该理论,我首先会在任何位置硬编码一些值在 JSON 中调用函数(例如 "email"=> $this->input->post("applicant_email"))并替换为实际的电子邮件等并运行。

如果您仍然收到 400 错误,则表明您的请求存在其他问题。如果不这样做,那么您只需在这些函数调用传回的值周围添加引号即可。

例如,您可以分配给变量,例如

$applicantEmail_1 = $this->input->post("applicant_email")

然后设置你的 JSON:

"templateRoles" => array(
                       array(
                           "email" => "****@******.com",
                           "name" => "**** *****",
                           "roleName" => "LC3"
                       ),
                       array(
                           "email" => "$applicantEmail_1",
                           "name" => $this->input->post("applicant_name"),
                           "roleName" => "Applicant",
                       ...

PHP 的好处是,即使该变量位于双引号中,该变量的值仍将插入到引号内。

关于php - 预填充文档签名模板字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19236315/

相关文章:

php - PDO插入数组

php - Apache 服务器插槽、内存、KeepAlive、PHP 和 SSL - 如何加速

php - Yii::app()->用户->id;正在返回用户名而不是身份证号码

codeigniter - 不使用 slug 的 CodeIgniter 中的 SEO 友好 URL?

php - 如何在 php 站点中显示 PDF?

api - 如何分析 Laravel 的 REST API

api - 如何构建 REST API XML 响应

python - Django REST Framework POST 嵌套对象

php - PHP框架的多个Ajax请求

php - 删除 mysql 记录在 codeIgniter 中不起作用