Я использую учетную запись dev и сайт demo.docusign.net для тестирования API. Я хочу создать шаблон с документом, который имеет пользовательские поля данных. Я создал шаблон и на странице, где вы перетаскиваете поля в документ, я создал настраиваемое поле. Я назвал его «Фамилия». Я сохранил настраиваемое поле и сохранил шаблон. Теперь я хочу создать новый документ для подписания через API и заполнить это поле. Используя Пошаговые руководства в качестве руководства, я смог создать новый черновик конверта из шаблона. Затем я хотел заполнить настраиваемое поле данными. Однако это не работает. Я получаю следующее сообщение об ошибке:Пользовательские поля для документов
{ «ERRORCODE»: «INVALID_REQUEST_BODY», «сообщение» : «Тело запроса отсутствует или неправильно отформатирована.» } '
Ниже приведен мой код на основе Пошагового руководства. В дополнение к тому, что пользовательское поле было прикреплено во время разработки, я хотел протестировать динамическое добавление нового настраиваемого поля и его модификацию. Итак, сначала я делаю запрос POST, чтобы добавить новое поле и установить его с помощью API получателей/вкладок. Затем я делаю запрос GET для получения вкладок для получателя, чтобы я мог захватить идентификатор тега. Затем я делаю запрос PUT для изменения поля, и я получаю сообщение об ошибке. Но тело запроса выглядит хорошо для меня, и оно содержит только необходимое поле для TagId. Я предполагаю, что единственное другое необходимое поле - это одно, чтобы установить значение. Тот же орган запроса отлично работает для запроса POST. Я просто скопировал его и изменил поля. POST работает отлично, и я могу проверить добавленное поле, открыв его в консоли. Новое поле есть. Это просто PUT, чтобы изменить, что не работает.
/////////////////////////////////////////////////////////////////////////////////////////////////
// STEP 1 - Add New Tab
/////////////////////////////////////////////////////////////////////////////////////////////////
$curl = curl_init($baseUrl . "/envelopes/" . $envelopeId . "/recipients/1/tabs");
$data = array (
'textTabs' =>
array (
0 =>
array (
'documentId' => '1',
'pageNumber' => '1',
'tabLabel' => 'test tab',
'value' => 'test',
),
),
);
$data_string = json_encode($data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string),
"X-DocuSign-Authentication: $header")
);
$json_response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($status != 201) {
echo "error calling webservice, status is:" . $status;
exit(-1);
}
$response = json_decode($json_response, true);
curl_close($curl);
//--- display results
/////////////////////////////////////////////////////////////////////////////////////////////////
// STEP 2 - Get recipient tab information
/////////////////////////////////////////////////////////////////////////////////////////////////
$curl = curl_init($baseUrl . "/envelopes/" . $envelopeId . "/recipients/1/tabs");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
"X-DocuSign-Authentication: $header")
);
$json_response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($status != 200) {
echo "error calling webservice, status is:" . $status;
exit(-1);
}
$response = json_decode($json_response, true);
curl_close($curl);
$lastNameTabID = $response['textTabs'][0]['tabId'];
$testTabID = $response['textTabs'][1]['tabId'];
//--- display results
/////////////////////////////////////////////////////////////////////////////////////////////////
// STEP 3 - update tab value
/////////////////////////////////////////////////////////////////////////////////////////////////
$curl = curl_init($baseUrl . "/envelopes/" . $envelopeId . "/recipients/1/tabs");
$data = array (
'textTabs' =>
array (
0 =>
array (
'tabId' => $testTabID,
'value' => 'Some Value',
),
),
);
$data_string = json_encode($data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_PUT, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string),
"X-DocuSign-Authentication: $header")
);
$json_response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($status != 201) {
echo "error calling webservice, status is:" . $status;
exit(-1);
}
$response = json_decode($json_response, true);
curl_close($curl);
А вот выход запроса органа
data_string = «{ "textTabs": [{ "табетический": "627883d0-542c-40c7-a58c-ce68d9e057e1", "значение": «Некоторое значение»}]} '
Я ценю некоторые рекомендации.
Благодаря Джо
Хорошо, что делает работа. Поэтому я могу хотя бы двигаться вперед.Однако на самом деле он не отвечает на вопрос о том, почему я не могу использовать API получателей/вкладок /accounts/{accountId}/envelopes/{envelopeId}/recipients/{recipientId}/tabs изменить после конверта создание. Мне все равно нужен ответ, если мне нужно изменить поле после создания конверта. спасибо – Joe