You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过一键按钮使用SDK连接DocuSign账户并获取令牌

实现无框架、无表单的DocuSign账户连接(获取令牌及账户详情)

核心逻辑

基于DocuSign OAuth授权码流程,通过单按钮触发授权跳转,后端处理回调完成授权码换令牌,再调用API拉取账户详情。全程无需表单或第三方框架,用原生代码+DocuSign SDK即可实现。

步骤1:准备DocuSign应用配置

先在DocuSign开发者平台创建应用,获取以下关键参数:

  • client_id(集成密钥)
  • client_secret
  • redirect_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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 08:10:54