EnvelopeRecipients:创建无法创建选项卡

时间:2018-10-04 10:28:24

标签: docusignapi

我有一些代码可以像魅力一样工作,以创建信封并使用Envelopes:create方法添加收件人。

现在我需要开始使用EnvelopeRecipients:create方法在已经创建的信封中添加一些签名者。 Doc:https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipients/create

我的代码正在运行:我可以创建一个新的签名者,API不会返回任何错误,但我尝试为此新用户添加的所有标签都没有设置。

我正在使用PHP SDK,但我只会向您展示由SDK发送到API的数据。

{
  "signers": [
    {
      "clientUserId": 3,
      "email": "fakesigner@gmail.com",
      "name": "Fake Signer",
      "recipientId": 3,
      "routingOrder": 0,
      "tabs": {
        "dateSignedTabs": [

        ],
        "signHereTabs": [
          {
            "documentId": 1,
            "pageNumber": 1,
            "xPosition": 100,
            "yPosition": 100
          }
       ],
       "textTabs": [

        ]
      }
    }
  ]
}

新用户已创建。除tabs属性外,所有属性均正确:tabs = null 我仔细检查了一下,我确定这些标签在文档中不存在。 所有标签类型均存在相同问题。 如果发生这种情况,则会发送我的信封状态。

不确定此问题是我的代码,SDK还是API引起的。

1 个答案:

答案 0 :(得分:0)

问题已解决: 我不明白为什么该方法:

POST / v2 / accounts / {accountId} / envelopes / {envelopeId} /收件人无法正常工作,但使用以下方法我得到了相同的结果,没有错误: PUT / v2 /帐户/ {accountId} /信封/ {envelopeId} https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/update

我怀疑API或PHPSDK中的第一种方法中的选项卡存在错误。

最终工作代码:

    $envelopeApi = new DS\Api\EnvelopesApi($this->apiClient);

    //TEST
    $envelope = new DS\Model\Envelope();
    $addRecipients = new DS\Model\Recipients();
    $fakeSigner = new DS\Model\Signer();
    $fakeSigner->setName('Fake Signer');
    $fakeSigner->setEmail('fakesigner@gmail.com');
    $fakeSignerId = 50;
    $fakeSigner->setClientUserId($fakeSignerId);
    $fakeSigner->setRecipientId($fakeSignerId);
    $fakeSigner->setRoutingOrder(1);
    $fakeSignerTabs = new DS\Model\Tabs();
    $fakeSignHere = $tab = new DS\Model\SignHere();
    $fakeSignHere->setXPosition(100);
    $fakeSignHere->setYPosition(100);
    $fakeSignHere->setDocumentId(1);
    $fakeSignHere->setPageNumber(1);
    $fakeSignerTabs->setSignHereTabs(array($fakeSignHere));
    $fakeSignerTabs->setDateSignedTabs(array());
    $fakeSignerTabs->setTextTabs(array());
    $fakeSigner->setTabs($fakeSignerTabs);
    $addRecipients->setSigners(array($fakeSigner));

    $envelope->setRecipients($addRecipients);

    $updateOptions = new DS\Api\EnvelopesApi\UpdateOptions();
    $updateOptions->setAdvancedUpdate('true');

    try{
        $summary = $envelopeApi->update($this->accoundId, $envelopeId, $envelope, $updateOptions);
        var_dump($summary);
    } catch (DS\ApiException $e){
        $this->logger->error('Error while calling Docusign :' . $e->getResponseBody()->errorCode . " " . $e->getResponseBody()->message);
        throw $e;
    }

希望它可以帮助某人。