2016-06-22 2 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을 추가하는 다른 방법. 받는 사람마다 여러 SignHereTab을 가질 수 있지만 중복되는받는 사람은 없습니다.

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; 
} 

나는 또한받는 사람 및 SignHereTabs 모두 작성 후에 호출됩니다 내 SendEnvelope 방법에 setSignHereTabs을 움직였다.

// 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을 이용해 주셔서 감사합니다! –

관련 문제