如何通过一键按钮使用SDK连接DocuSign账户并获取令牌
实现无框架、无表单的DocuSign账户连接(获取令牌及账户详情)
核心逻辑
基于DocuSign OAuth授权码流程,通过单按钮触发授权跳转,后端处理回调完成授权码换令牌,再调用API拉取账户详情。全程无需表单或第三方框架,用原生代码+DocuSign SDK即可实现。
步骤1:准备DocuSign应用配置
先在DocuSign开发者平台创建应用,获取以下关键参数:
client_id(集成密钥)client_secretredirect_uri(回调地址,需与平台配置完全一致)
步骤2:前端添加连接按钮
纯HTML按钮,点击直接跳转至DocuSign授权页面,无需表单:
<button onclick="window.location.href='https://account-d.docusign.com/oauth/auth?response_type=code&client_id=你的CLIENT_ID&redirect_uri=你的回调地址&scope=signature%20impersonation'">连接DocuSign账户</button>
注:scope参数按需调整,signature用于签名权限,impersonation用于获取用户账户详情
步骤3:后端处理回调并获取令牌
创建回调页面(比如callback.php),用SDK处理授权码交换令牌:
<?php require_once 'vendor/autoload.php'; // 加载DocuSign SDK use DocuSign\eSign\Client\ApiClient; // 从回调URL中取授权码 $authCode = $_GET['code'] ?? null; if (!$authCode) { die("授权失败:未获取到授权码"); } // 初始化API客户端 $apiClient = new ApiClient(); $apiClient->setOAuthBasePath("account-d.docusign.com"); // 沙箱环境,生产环境用account.docusign.com // 交换授权码获取令牌 try { $oauthToken = $apiClient->generateAccessToken( "你的CLIENT_ID", "你的CLIENT_SECRET", $authCode ); // 提取令牌信息(实际场景建议存入会话/数据库,不要明文输出) $accessToken = $oauthToken->getAccessToken(); $refreshToken = $oauthToken->getRefreshToken(); $expiresIn = $oauthToken->getExpiresIn(); echo "访问令牌:$accessToken<br>"; echo "刷新令牌:$refreshToken<br>"; echo "令牌有效期:$expiresIn 秒<br>"; } catch (Exception $e) { die("获取令牌失败:" . $e->getMessage()); }
步骤4:用令牌获取账户详情
在回调页面中,拿到访问令牌后调用API获取用户账户信息:
// 设置当前访问令牌 $apiClient->setAccessToken($accessToken); // 获取用户及账户详情 try { $userInfo = $apiClient->getUserInfo(); $accounts = $userInfo->getAccounts(); foreach ($accounts as $account) { echo "<br>账户ID:" . $account->getAccountId() . "<br>"; echo "账户名称:" . $account->getAccountName() . "<br>"; echo API基础地址:" . $account->getBaseUri() . "<br>"; } } catch (Exception $e) { die("获取账户详情失败:" . $e->getMessage()); }
关键注意事项
- 确保
redirect_uri在DocuSign应用配置中已添加,且与代码中完全匹配 - 沙箱环境和生产环境的OAuth域名不同,注意切换
- 令牌需妥善存储,禁止明文暴露给前端(示例仅为演示)
- 若需长期授权,可利用刷新令牌定期更新访问令牌
内容的提问来源于stack exchange,提问作者ibrar ahmad
相关产品推荐
相关产品推荐

