使用JWT成功获取访问令牌后,PARTNER_AUTHENTICATION_FAILED

时间:2019-05-16 20:05:44

标签: php docusignapi

  1. 我正在尝试在我的应用程序和DocuSign沙盒之间建立连接。

  2. 我正在使用JWT授权。

  3. 我已生成带有RSA私钥的集成密钥。
  4. 我有用户模仿GUID并征得同意
  5. 我用适当的数据致电https://account-d.docusign.com/oauth/token,该数据会成功响应并退回访问令牌

到目前为止一切都很好。

我已经下载了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)

你们能帮我解决这个问题吗?

如果有更多信息可以帮助您找到解决方案,请告诉我,我将更新我的帖子。

感谢帮助。

1 个答案:

答案 0 :(得分:2)

问题出在这一行

 $results = $envelopeApi->createEnvelope($integrationKey, $envelopeDefinition);

createEnvelope方法的第一个参数应该是帐户ID,而不是集成商密钥。

收到访问令牌后,您可以发起UserInfo呼叫并从中提取帐户ID。