2016-07-13 3 views
0

У меня есть учетная запись DocuSign для разработки демо-версии, поскольку я пытаюсь работать с API, чтобы получатели могли быть направлены в документы, чтобы подписываться от отправителя (отправителем в этом случае является я). Всякий раз, когда я POST API, чтобы получить представление получателя документа, которое я отправил себе, он успешно, и URL-адрес правильно возвращен. Однако, когда я запрашиваю URL-адрес получателя кому-либо, кроме меня, я получаю ошибку 400 Bad Call. Я реализую это в PHP, но я также пробовал это в REST API explorer с тем же результатом.Почему DocuSign не возвращает URL-адрес Recipientview для других получателей?

Вот код, который работает при отправке документов самому себе. $account_id, $envelope_id, $recipient найдены через базу данных и возвращают правильные значения, поэтому предполагают, что они правильны, где вы их видите:

$url = "https://demo.docusign.net/restapi/v2/accounts/".$account_id."/envelopes/$envelope_id/views/recipient"; 

$body = array("returnUrl" => "https://www.docusign.com/devcenter", 
       "authenticationMethod" => "None", 
       "email" => "$recipient", 
       "userName" => "$recipient"); 

$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($connection)); 
} 

Это возвращает следующий JSON:

{ 
    "url": "www.urlexample.com" 
} 

Поскольку получатели не авторизованный по умолчанию, при обращении к получателю, отличному от меня, я должен изменить $body, чтобы не только включать "authenticationMethod" и "returnUrl", но также и "userId" и "recipientId", которые должны соответствовать, nd "clientUserId" (который был бы моим разработчиком), чтобы DocuSign знал, что этот запрос выполняется с авторизацией. Однако, похоже, я не могу это сделать.

Это то, что я пытался для $body:

$url = "https://demo.docusign.net/restapi/v2/accounts/".$account_id."/envelopes/$envelope_id/views/recipient"; 

$body = array("authenticationMethod" => "email", 
       "clientUserId" => "314c7a19-49ff-4405-a958-42344273060c", 
       "returnUrl" => "https://www.docusign.com/devcenter", 
       "recipientId" => "a3f182e7-65b6-4bc1-b603-cc8ed23fed0d" 
       "userId" => "a3f182e7-65b6-4bc1-b603-cc8ed23fed0d" 
     ); 

Этот запрос (подставляется в предыдущем коде) возвращает ошибку 400 со следующей JSON:

{ 
    "errorCode": "UNKNOWN_ENVELOPE_RECIPIENT", 
    "message": "The recipient you have identified is not a valid recipient of the specified envelope." 
} 

Однако это не имеют смысл, потому что и "recipientId", и "userId" совпадают, и $envelope_id также определенно правильный (я проверял тройку).

BOTTOM LINE: Как создать URL-адреса для просмотров получателей, если получатели не авторизованы?

ответ

0

Для создания подписи маркеров для получателей в данном конверте один из следующих потребностей, чтобы быть правдой:

  1. Вы должны быть отправитель конверта.
  2. Вы должны быть администратором отправляющей учетной записи.

Возможно, вы подтвердите, что одно из следующих утверждений верно в вашем случае?

+0

Оба являются истинными в моем случае – Jodo1992

1

Предполагая, что конверт «отправлен» и не находится в «созданном» состоянии. Попробуйте передать имя пользователя & E-mail, который соответствует получателю на созданном конверте, который соответствует названию & e-mail. ClientUserId, если он присутствует при первоначальном создании конверта, также должен совпадать.

Если это не так - напишите, как вы создаете конверт.Лучший способ сделать это - захватить необработанные журналы запросов API и опубликовать JSON: https://support.docusign.com/articles/API-Request-Logging

+0

Это система API, которую клиенты будут использовать для отправки документов своим клиентам. Я не буду создавать/контролировать какие-либо из учетных записей Admin, но у меня будет информация об их учетной записи, чтобы отслеживать все конверты, которые они создают и отправляют. Они будут создавать конверты из шаблонов на своих сайтах. Я могу получить любую информацию, которую я хочу о любом из клиентов, конвертов или приемников, мне просто нужно знать, чего именно я здесь не хватает. – Jodo1992

+0

Вид получателя на 100% зависит от того, как был создан конверт. Нужно было посмотреть, как выглядел запрос API создания конверта. Если он не был создан из API, вы не можете создать токен представления получателя. –

+0

Да, вы можете, поскольку я оказался в состоянии. – Jodo1992

 Смежные вопросы

  • Нет связанных вопросов^_^