DocuSign API:将新收件人添加到信封时重复的initialHere选项卡
问题描述:
我的用例是一个文档必须由两个人签名:一个是我们有一个电子邮件地址的普通用户,另一个用户可以是任何我的应用程序。管理员用户是在普通用户签名后选择的。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.
答
我不确定为什么在您描述的场景中会出现重复的选项卡。 然而,这些方法的执行可能会消除这一问题:
- ,而不是删除占位符收件人(和标签),并加入了新的收件人(和标签),只需更新第二收件人指定实际签名info(一旦知道它,即在为第二个签名者启动嵌入式签名会话之前)。
OR
- 做的事情,你是 - 除了当您创建占位收件人不指定收件人的任何标签。然后,当您删除占位符收件人时,添加新收件人并为该新收件人指定标签。
更新占位符用户而不是删除它确实可以解决我发现的API错误。谢谢 ! – olivieradam666