php - DocuSign API (PHP SDK) - 为什么我会收到此响应?“请求服务器时出错,收到带有响应正文的非成功 HTTP 代码 [302]:”
问题描述
我正在尝试使用 DocuSign PHP SDK 发送基于模板的签名请求。我正在尝试遵循此示例中概述的步骤:https ://developers.docusign.com/docs/esign-rest-api/how-to/request-signature-template-remote
为了进行身份验证,我使用的是 JWT。我组装了一个使用 DocuSign 生成的 RSA256 私钥签名的标头和有效负载,我收到的响应访问令牌采用以下格式:eyJ0eXAiOiJ-----.yyyyyy-----.zzzzzz-----(示例,实际令牌要长得多)。
当我尝试在此处运行此代码时(将上述访问令牌和我的 DocuSign 凭据作为参数放入):
private function worker($args)
{
$envelope_args = $args["envelope_args"];
# Create the envelope request object
$envelope_definition = $this->make_envelope($envelope_args);
# Call Envelopes::create API method
# Exceptions will be caught by the calling function
$config = new \DocuSign\eSign\Configuration();
$config->setHost($args['base_path']);
$config->addDefaultHeader('Authorization', 'Bearer ' . $args['ds_access_token']);
$api_client = new \DocuSign\eSign\client\ApiClient($config);
$envelope_api = new \DocuSign\eSign\Api\EnvelopesApi($api_client);
try {
$results = $envelope_api->createEnvelope($args['account_id'], $envelope_definition);
$envelope_id = $results->getEnvelopeId();
}
catch(ApiException $apiException) {
echo $apiException->getMessage();
}
return ['envelope_id' => $envelope_id];
}
然后我最终发现了一个异常:
Error while requesting server, received a non successful HTTP code [302] with response Body:
深入挖掘并 var_dumping 响应,正文确实是空的,这里是响应标头:
array(
0 => string 'HTTP/1.1 302 Found'
'Cache-Control' => string 'no-cache'
'Content-length' => string '0'
'Location' => string 'https://account-d.docusign.com/v2.1/accounts/6d7dc630-xxxx-xxxx-xxxx-xxxxxxxxxxxx/envelopes'
'Connection' => string 'close'
)
我已经屏蔽了响应的位置部分中的数字,以防它是敏感的。作为 DS API 的新手,我不清楚这个数字是多少。这不是我在项目配置中定义的任何内容。
有谁知道此错误消息表示什么?我是否尝试访问不正确的 API 端点?这是否表明我的 JWT 访问令牌无效?还有什么?
感谢您的任何帮助,您可以提供。
解决方案
推荐阅读
- c++ - 我在微控制器 stm32f373 发现中点亮 LED 时遇到问题
- libgdx - 在制作软体(球体)并在 libgdx 中平移时,很少有网格顶点粘在原点上?
- install4j - 第二次启动时的执行级别启动应用程序不会从代码中调用 main 方法
- azure - 部署时的数据库参考
- flutter - Dart 函数可以接受范围参数吗?
- c# - 获取当前活动标签
- hyperledger-fabric - Hyperledger Fabric 交易太慢
- scrapy - Scrapy:与另一端的连接丢失
- javascript - 删除部分 jQuery 后对每个元素进行验证
- angular - 从现有项目构建角度元素