使用PHP调用DocuSign接口插入自定义字段的相关问题咨询
DocuSign字段填充失败解决方案
根因说明
你混淆了*信封自定义字段(Envelope Custom Field)和收件人文本标签(Recipient Text Tab)*两个独立的DocuSign属性:你在后台创建的Custom Field属于信封级全局字段,不是绑定到文档位置的填充标签,直接在信封根节点配置tabs自然无法匹配生效。
两种正确配置方案
方案1:填充已创建的信封自定义字段
如果你的自定义字段仅用于信封属性标记,不需要展示在文档内容里,直接在信封参数根节点新增customFields配置即可,示例代码:
$docu = Docusign::createEnvelope(array( 'templateId' => '373809c2-de64-43e1-8f41-a810dac4ab45', // 模板ID 'emailSubject' => 'Demo Envelope Subject', // 发送给所有收件人的邮件主题 'status' => 'created', // created表示草稿(设置为'sent'会直接发送信封!) // 新增信封自定义字段配置 'customFields' => array( 'textCustomFields' => array( array( 'name' => 'username', // 与后台创建的自定义字段名称完全匹配,大小写敏感 'value' => '123 Main St.', 'show' => 'true' // 设为true则该字段会展示在信封详情页 ) ) ) ));
方案2:将字段值填充到文档指定位置
如果需要把值展示在文档的固定位置,你需要先调整模板配置和代码结构:
- 进入DocuSign模板编辑页,给对应收件人角色添加一个文本标签,将标签的「数据标签」属性设为
username - 使用模板时
tabs必须绑定到templateRoles节点下,不能直接放在信封根参数,完整代码示例:
$docu = Docusign::createEnvelope(array( 'templateId' => '373809c2-de64-43e1-8f41-a810dac4ab45', 'emailSubject' => 'Demo Envelope Subject', 'status' => 'created', 'templateRoles' => array( array( 'email' => 'recipient@test.com', // 收件人邮箱 'name' => '收件人名称', 'roleName' => 'signer', // 与模板中设置的收件人角色名称完全匹配 'tabs' => array( 'textTabs' => array( array( 'tabLabel' => 'username', 'value' => '123 Main St.' ) ) ) ) ) ));
注意事项
所有配置的名称、角色名、标签名均大小写敏感,需和后台配置完全一致,不可包含多余空格。
内容的提问来源于stack exchange,提问作者Nils Vennemann
相关产品推荐
相关产品推荐

