我有一些代码可以像魅力一样工作,以创建信封并使用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引起的。
答案 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;
}
希望它可以帮助某人。