如何用PHP(Laravel) SDK根据DocuSign模板ID查找字段数据标签名称
通过DocuSign PHP SDK(Laravel)获取模板字段名称的实现思路
核心实现步骤
1. 初始化TemplatesApi客户端
先确保已通过Composer安装DocuSign PHP客户端包,在Laravel项目中配置好认证信息后,初始化TemplatesApi实例:
use DocuSign\eSign\Client\ApiClient; use DocuSign\eSign\Api\TemplatesApi; // 初始化API客户端 $apiClient = new ApiClient(); $apiClient->setOAuthBasePath('https://account-d.docusign.com'); // 测试环境,生产环境替换为account.docusign.com $apiClient->setAccessToken('你的访问令牌', 3600); // 令牌有效期按需设置 // 实例化TemplatesApi $templatesApi = new TemplatesApi($apiClient);
2. 调用接口获取模板详情
使用getTemplate方法传入账户ID和目标模板ID,获取包含字段信息的完整模板数据:
$accountId = '你的DocuSign账户ID'; $templateId = '需要查询的模板ID'; // 获取模板完整信息 $template = $templatesApi->getTemplate($accountId, $templateId);
3. 提取字段名称
模板数据中,字段(数据标签)存放在收件人对象的tabs属性下,遍历提取即可:
$fieldLabels = []; // 遍历所有收件人类型(签署人、抄送人等) foreach (['signers', 'carbonCopies', 'certifiedDeliveries'] as $recipientType) { if (property_exists($template->getRecipients(), $recipientType)) { $recipients = $template->getRecipients()->{$recipientType}; foreach ($recipients as $recipient) { $tabs = $recipient->getTabs(); // 遍历所有类型的标签(文本框、复选框等) foreach ($tabs as $tabGroup) { foreach ($tabGroup as $tab) { $fieldLabels[] = $tab->getTabLabel(); } } } } } // 去重后得到所有字段名称 $uniqueFieldLabels = array_unique($fieldLabels);
注意事项
- 确保访问令牌拥有
template_read权限范围,否则会返回权限不足错误 - 测试环境与生产环境的API基础路径不同,需根据实际环境切换
- 若模板包含全局自定义字段,可通过
$template->getCustomFields()提取
内容的提问来源于stack exchange,提问作者Manish Kumar Pathak
相关产品推荐
相关产品推荐

