Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 预填充Docusign模板字段_Php_Codeigniter_Rest_Docusignapi - Fatal编程技术网

Php 预填充Docusign模板字段

Php 预填充Docusign模板字段,php,codeigniter,rest,docusignapi,Php,Codeigniter,Rest,Docusignapi,因此,当从自定义界面提交文档时,我试图在DocuSign模板中预填充一些字段,但请求似乎无法在模板中找到它们。我们正在使用REST、旋度和Codeigniter。我的数据数组如下所示: $data = array("accountId" => $accountId, "emailSubject" => "Hello World!", "emailBlurb" => "This comes from PHP", "templateId" => "**

因此,当从自定义界面提交文档时,我试图在DocuSign模板中预填充一些字段,但请求似乎无法在模板中找到它们。我们正在使用REST、旋度和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"); 
我尝试用tabs代替tabstatus,但这也不起作用,我们的XML响应使用tabstatus代替tabs。自从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":"mike@cloudpwr.com",
            "name":"Mike Longmire",
            "roleName":"LC3",
            "tabStatuses":[
                {
                    "tabStatus":[
                        {
                            "tabLabel":"lic_num",
                            "tabValue":"1111"
                        },
                        {
                            "tabLabel":"ubi_num",
                            "tabValue":"2222"
                        },
                        {
                            "tabLabel":"tra_nam",
                            "tabValue":"Flakey"
                        }
                     ]
                 }
             ],
             "email":"duckie715@gmail.com",
             "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(“申请人电子邮件”)
)并替换为实际电子邮件等,然后运行

如果仍然出现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的好处在于,即使该变量在双引号中,变量的值仍将插入引号中。

对DocuSign API请求(或任何API请求)进行故障排除的第一步是检查完整的JSON(或XML)向服务器发送的请求。(使用Fiddler或类似工具,这很容易做到。)查看原始请求内容并将其与DocuSign代码示例和文档进行比较,应该可以让您确定请求结构/内容的问题,然后您可以相应地调整代码。如果您可以在此处发布请求XML或JSON,我很乐意就您的问题的潜在原因提供反馈。我很乐意,但我无法让Fiddler在我的Mac上工作。你能推荐另一个应用程序吗?我有一个来自data_string变量的准json打印。因此,现在当我单击“创建信封”菜单链接时,它会给我“调用webservice时出错,状态为:400”错误。我想知道它是否不喜欢Codeigniter语法,即$this->input->post(),即使它确实有效。因此它实际上是电子邮件地址。是否有特殊的方法来处理标头请求中的电子邮件地址?它仍然不会写入模板中的字段。这解决了电子邮件问题,但我仍然无法使其写入字段。这是否意味着您不再收到错误,但它不是预填充的是否删除信封标签?如果是这种情况,请确保您在JSON中使用的是
tab
而不是
tabStatuses
,并确认传入代码的tabLabel与通过控制台添加标签的tab标签完全匹配。是的。我刚刚将其更改为tab,但它仍然没有预填充。我使用的是tabStatuses和TabStatus,因为在我们的响应XML中,没有Tab和Tab。所以看看我刚刚下载的模板,它确实是Tab(我的错误)。下一步应该是Tab而不是TextTab吗?