2017-10-11 80 views
0

我的用例是一個文檔必須由兩個人簽名:一個是我們有一個電子郵件地址的普通用戶,另一個用戶可以是任何我的應用程序。管理員用戶是在普通用戶簽名後選擇的。DocuSign API:將新收件人添加到信封時重複的initialHere選項卡

我當前使用DocuSign API實現時會創建一個包含兩個簽名者的信封,即常規用戶和名爲admin-placeholder的第二個簽名者。

當管理員開始簽名時,我會調用API以用實際管理員替換admin-placeholder

這裏是我的PHP代碼(callDocusign函數做什麼它似乎做):

// fetch tabs of placeholder user 
$tabs= callDocusign($docusignLogin, 'GET', "envelopes/$envelopeId/recipients/$placeholderRecipient/tabs?include_anchor_tab_locations=true"); 

// remove tabIds to avoid issue on submission 
foreach(array_keys($tabs) as $kind) { 
    for ($i = 0; $i < count($tabs[$kind]); $i++) { 
     // sanitize_user_input removes all properties except those listed in its second argument 
     $tabs[$kind][$i] = sanitize_user_input($tabs[$kind][$i], ["documentId", "pageNumber", "xPosition", "yPosition", "anchorString", "anchorXOffset", "anchorYOffset", "anchorIgnoreIfNotPresent", "anchorUnits"]); 
    } 
} 

// add signer 
$data = [ 
    'signers' => [[ 
     'email' => $user['email'], 
     'clientUserId' => pseudo_encrypt($uid), 
     'recipientId' => pseudo_encrypt($uid), 
     'name' => user_full_name($user), 
    ]], 
]; 
callDocusign($docusignLogin, 'POST', "envelopes/$envelopeId/recipients", $data); 

// delete placeholder signer 
callDocusign($docusignLogin, 'DELETE', "envelopes/$envelopeId/recipients/$placeholderRecipient"); 

// for some reason setting tabs at signer creation doesn't work 
// we'll create them now 
callDocusign($docusignLogin, 'POST', "envelopes/$envelopeId/recipients/".pseudo_encrypt($uid).'/tabs', $tabs); 

所有工作正常,但這個過程結束了複製的佔位符用戶的所有initialHere標籤。在我的使用案例中,第一個用戶有14 initialHere選項卡,第二個簽名者最終以28. 28.

回答

1

我不確定爲什麼在您描述的場景中會出現重複的選項卡。 然而,這些方法的執行可能會消除這一問題:

  • ,而不是刪除佔位符收件人(和標籤),並加入了新的收件人(和標籤),只需更新第二收件人指定實際簽名info(一旦知道它,即在爲第二個簽名者啓動嵌入式簽名會話之前)。

OR

  • 做的事情,你是 - 除了當您創建佔位收件人不指定收件人的任何標籤。然後,當您刪除佔位符收件人時,添加新收件人併爲該新收件人指定標籤。
+0

更新佔位符用戶而不是刪除它確實可以解決我發現的API錯誤。謝謝 ! – olivieradam666

相關問題