2016-06-22 5 views
0

1人の受信者に1つの封筒に複数の場所でサインインする必要があります。おそらく私はこれを行う適切な方法に関するいくつかのドキュメントを見逃しているが、私はこれを検索するのに失敗している。ここでは、受信者を追加するための私の方法は次のとおりです。1人の受信者から複数の署名をエンベロープで取得する方法はありますか? 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()メソッドを2つの部分に分割して解決しました。受信者を追加する1つの方法、およびSignHereTabを追加するもう1つの方法。受信者ごとに複数の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をご利用いただきありがとうございます! –