Я пытаюсь создать RecipientView для отправки через приложение получателям создаваемых конвертов. С новым API-интерфейсом DocuSign для этого требуется userName
, который вводится лицом, создающим документ, который должен быть подписан, email
, который является только адресом электронной почты получателя, и clientUserId
, который является строковым значением отправителя, которое аутентифицирует получателя как встроенный подписчик, чтобы можно было создать RecipientView для проведения церемонии подписания.Как установить clientUserId для получателя в DocuSign с помощью API REST?
DocuSign ссылки документации, что мне нужно установить clientUserId
, но это не говоря уже о том, как к делать это, кроме, когда оболочка создается через API. Однако в этом случае конверты будут созданы клиентом DocuSign Admin через шаблоны на реальном веб-интерфейсе, а - не через API.
Мой код для генерации RecipientView все готово здесь:
$url = "https://demo.docusign.net/restapi/v2/accounts/$account_id/envelopes/$envelope_id/views/recipient";
$body = array("returnUrl" => "http://www.docusign.com/devcenter",
"authenticationMethod" => "None",
"email" => "$email",
"userName" => "$name",
"recipientId" => "$recipientId",
"clientUserId" => "1000"
);
$body_string = json_encode($body);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Content-Length: '.strlen($body_string),
"Authorization: Bearer $access_token"
));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $body_string);
$json_response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($status != 201){
die('Could not connect to end point: '.mysqli_error($conn));
}
$response = json_decode($json_response, true);
$url = $response["url"];
Этот код делает работу, когда встроенный подписавшего учетная запись администратора, но не тогда, когда конверт отправляется к фактическому получателю. Возвращение JSON из DocuSign после этого запроса должно быть:
{
"url": "example.example.com"
}
Однако возвращение я для получателей, которые не Администратор счета DocuSign является:
{
"errorCode": "UNKNOWN_ENVELOPE_RECIPIENT",
"message": "The recipient you have identified is not a valid recipient of the
specified envelope."
}
Я считаю, не устанавливая clientUserId
является причина этого, так как documentation говорит, что мне нужно установить clientUserId
, а не просто создавать значение при совершении вызова. Как установить получателя clientUserId
через REST API?
ОБНОВЛЕНИЕ: В этом случае я не буду создавать и отправлять конверты. Это будет сделано клиентами, которые у меня есть через мое приложение, и большинство из них, скорее всего, будут использовать веб-интерфейс для этого, а не API. У меня есть доступ ко всей информации об учетной записи администратора для каждого клиента, включая ключ Integrator, токены доступа, идентификаторы конвертов, идентификаторы учетных записей и т. Д.
Ошибка, которую я делал, не устанавливала clientUserId.Поскольку я не могу управлять этим полем при создании конверта, мне нужно было установить clientUserId перед тем, как сделать вызов для встроенного URL-адреса подписчика. – Jodo1992