2016-06-22 4 views
0

У меня есть необходимость получить одного Получателя для входа в несколько мест в одном конверте. Возможно, я пропустил некоторые документы по правильному пути для этого, но я не увенчался успехом в поиске этого. Вот мой метод для добавления получателей:Как получить несколько подписей в конверте от одного получателя? DocuSign PHP SDK

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', '[email protected]', 90, 652, 1, 1); 
$test->addSigner('Nilson Cain', '[email protected]', 90, 652, 2, 1); 

К сожалению, это приводит к этой общей ошибки (которые я не получаю без дублирования получателей.)

Exception: exception 'DocuSign\eSign\ApiException' with message '[400] Error connecting to the API 

Спасибо за любую помощь!

ответ

1

Я решил это, сначала разбив метод addSigner() на две части. Один метод добавления получателя и другой метод добавления SignHereTab. Вы можете иметь несколько 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; 
} 

Я также переместил setSignHereTabs моему методу SendEnvelope, который будет вызываться после того, как реципиенты и SignHereTabs все созданы.

// add tabs to the document 
foreach($this->signers as $signerId => $signer) 
{ 
    $this->sigTabs[$signerId]->setSignHereTabs($this->sigFields); 
    $this->sigTabs[$signerId]->setDateSignedTabs($this->dateSignedFields); 
    $this->signers[$signerId]->setTabs($this->sigTabs[$signerId]); 
} 
+1

Исправить. Каждый тип получателя может включать в себя массив каждого из разных типов вкладок. Благодарим за использование DocuSign! –

Смежные вопросы