我正在尝试在我的应用程序和DocuSign沙盒之间建立连接。
我正在使用JWT授权。
到目前为止一切都很好。
我已经下载了PHP“ docusign / esign-client”库
并使用了这段代码:
$recipientId = uniqid(5);
$clientUserId = uniqid(5);
$document = new Document([
'document_base64' => $base64FileContent,
'name' => 'Application Form',
'file_extension' => 'pdf',
'document_id' => '1'
]);
$signer = new Signer([
'email' => $email,
'name' => $name,
'recipient_id' => $recipientId,
'routing_order' => "1",
'client_user_id' => $clientUserId,
]);
$signHere = new SignHere([
'document_id' => '1', 'page_number' => '3', 'recipient_id' => $recipientId,
'tab_label' => 'SignHereTab', 'x_position' => '195', 'y_position' => '147'
]);
$signer->setTabs(new Tabs(['sign_here_tabs' => [$signHere]]));
$envelopeDefinition = new EnvelopeDefinition([
'email_subject' => "Please sign this document",
'documents' => [$document],
'recipients' => new Recipients(['signers' => [$signer]]),
'status' => "sent"
]);
$config = new Configuration();
$config->setHost('https://demo.docusign.net/restapi');
$config->addDefaultHeader("Authorization", "Bearer " . $accessToken);
$config->setAccessToken($accessToken);
$apiClient = new ApiClient($config);
$envelopeApi = new EnvelopesApi($apiClient);
$results = $envelopeApi->createEnvelope($integrationKey, $envelopeDefinition);
结果是错误(400)来自带有信息的API:
PARTNER_AUTHENTICATION_FAILED
The specified Integrator Key was not found or is disabled. Invalid account specified for user.
它说集成密钥是错误的,但是在我使用此集成密钥成功生成访问令牌之前几行。
您是否知道出了什么问题?
在进行JWT集成之前,我使用了不同的集成密钥和OAuth令牌生成器中的访问令牌,并且工作正常(之前的密钥没有生成RSA)
你们能帮我解决这个问题吗?
如果有更多信息可以帮助您找到解决方案,请告诉我,我将更新我的帖子。
感谢帮助。
答案 0 :(得分:2)
问题出在这一行
$results = $envelopeApi->createEnvelope($integrationKey, $envelopeDefinition);
createEnvelope方法的第一个参数应该是帐户ID,而不是集成商密钥。
收到访问令牌后,您可以发起UserInfo呼叫并从中提取帐户ID。