我需要让一个收件人在一个信封中签到多个地方。也许我错过了一些关于正确方法的文档,但是我没有成功地搜索它。这是我添加收件人的方法:
function addSigner($signerName, $signerEmail, $xPos, $yPos, $documentId = 1, $documentPage = 1)
{
$index = count($this->signers);
$this->signers[$index] = new DocuSign\eSign\Model\Signer();
$this->signers[$index]->setName($signerName);
$this->signers[$index]->setEmail($signerEmail);
$this->signers[$index]->setRecipientId((string)$index + 1);
$this->sigFields[$index] = new DocuSign\eSign\Model\SignHere();
$this->sigFields[$index]->setXPosition($xPos);
$this->sigFields[$index]->setYPosition($yPos);
$this->sigFields[$index]->setDocumentId($documentId);
$this->sigFields[$index]->setPageNumber($documentPage);
$this->sigFields[$index]->setRecipientId((string)$index + 1);
$this->sigTabs[$index] = new DocuSign\eSign\Model\Tabs();
$this->sigTabs[$index]->setSignHereTabs(array($this->sigFields[$index]));
return $index;
}
这是我尝试调用方法
$test->addSigner('Nilson Cain', 'nilsoncain@fakewebsite.com', 90, 652, 1, 1);
$test->addSigner('Nilson Cain', 'nilsoncain@fakewebsite.com', 90, 652, 2, 1);
不幸的是,这会产生这种一般性错误(如果没有重复的收件人,我就不会这样做。)
Exception: exception 'DocuSign\eSign\ApiException' with message '[400] Error connecting to the API
感谢您的帮助!
答案 0 :(得分:1)
我通过首先将addSigner()方法分成两部分来解决这个问题。一种添加收件人的方法,另一种添加SignHereTab的方法。每个收件人可以有多个SignHereTab,但不能重复收件人。
z-index
我还将setSignHereTabs移动到我的SendEnvelope方法,该方法将在收件人和SignHereTabs全部创建后调用。
function addRecipient($signerName, $signerEmail)
{
$index = count($this->signers);
$this->signers[$index] = new DocuSign\eSign\Model\Signer();
$this->signers[$index]->setName($signerName);
$this->signers[$index]->setEmail($signerEmail);
$this->signers[$index]->setRecipientId($index + 1);
$this->sigTabs[$index] = new DocuSign\eSign\Model\Tabs();
return $index;
}
function addSignHereTab($signerId, $xPos, $yPos, $documentId = 1, $documentPage = 1)
{
$index = count($this->sigFields);
$this->sigFields[$index] = new DocuSign\eSign\Model\SignHere();
$this->sigFields[$index]->setXPosition($xPos);
$this->sigFields[$index]->setYPosition($yPos);
$this->sigFields[$index]->setDocumentId($documentId);
$this->sigFields[$index]->setPageNumber($documentPage);
$this->sigFields[$index]->setRecipientId($signerId + 1);
return $index;
}