ошибка документа при вызове веб-сервиса, статус: 401

я получаю эту ошибку при вызове веб-сервиса, статус: 401, когда я сделал новую учетную запись учетной записью участника (не учетной записью разработчика и пытаюсь интегрировать ее в форму, которая у меня есть.. я основывал код из пошаговых руководств API в самом документе)

<?php
if(($_POST['submit']))
{
// Input your info here:
$integratorKey = 'XXXX-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX';
$email = 'XXXXXXXXXX';
$email1 = 'XXXXXXXXX';
$email2 = 'XXXXXXXX';
$password = 'XXXXXXXX';
$name = 'XXX';
$name2 = 'XXXXXX';

// construct the authentication header:
$header = "<DocuSignCredentials><Username>" . $email . "</Username><Password>" . $password . "</Password><IntegratorKey>" . $integratorKey . "</IntegratorKey></DocuSignCredentials>";

/////////////////////////////////////////////////////////////////////////////////////////////////
// STEP 1 - Login (to retrieve baseUrl and accountId)
/////////////////////////////////////////////////////////////////////////////////////////////////
$url = "https://demo.docusign.net/restapi/v2/login_information";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
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);
$accountId = $response["loginAccounts"][0]["accountId"];
$baseUrl = $response["loginAccounts"][0]["baseUrl"];
curl_close($curl);

//--- display results


///////////////////////////////////////////////////////////////////////////////////////////    //////
// STEP 2 - Create an envelope with one recipient, one tab, one document and send!
    ///////////////////////////////////////////////////////////////////////////////////////////    //////
$data = "{
\"emailBlurb\":\"This comes from Dateguard\",
\"emailSubject\":\"DocuSign API - Please Sign This Contract for Dateguard...\",
\"documents\":[
{
\"documentId\":\"1\",
\"name\":\"contract.pdf\"
}
],
\"recipients\":{
\"signers\":[
{
\"email\":\"$email1\",
\"name\":\"$name\",
\"recipientId\":\"1\",
\"tabs\":{
\"signHereTabs\":[
{
\"xPosition\":\"80\",
\"yPosition\":\"550\",
\"documentId\":\"1\",
\"pageNumber\":\"1\"
}
]
}
},
{
\"email\":\"$email2\",
\"name\":\"$name2\",
\"recipientId\":\"2\",
\"tabs\":{





\"signHereTabs\":[
{
\"xPosition\":\"400\",
\"yPosition\":\"550\",
\"documentId\":\"1\",
\"pageNumber\":\"1\"
}
]
}   
}





 ]
 },
 \"status\":\"sent\"
}";

 $file_contents = file_get_contents("contract.pdf");

$requestBody = "\r\n"
."\r\n"
."--myboundary\r\n"
."Content-Type: application/json\r\n"
."Content-Disposition: form-data\r\n"
."\r\n"
."$data\r\n"
."--myboundary\r\n"
."Content-Type:application/pdf\r\n"
."Content-Disposition: file; filename=\"contract.pdf\"; documentid=1 \r\n"
."\r\n"
."$file_contents\r\n"
."--myboundary--\r\n"
."\r\n";

// *** append "/envelopes" to baseUrl and as signature request endpoint
$curl = curl_init($baseUrl . "/envelopes" );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $requestBody);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: multipart/form-data;boundary=myboundary',
'Content-Length: ' . strlen($requestBody),
"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 . "\nerror text is --> ";
print_r($json_response); echo "\n";
exit(-1);
}

$response = json_decode($json_response, true);
$envelopeId = $response["envelopeId"];

//--- display results
    $home_url = 'thanks.php';
    header('Location: ' . $home_url);   

}



?>

теперь проблема в том, что когда я использую свою учетную запись разработчика в docusign в качестве учетных данных для API, она работает, но когда я создаю учетную запись участника, она не работает (бесплатная пробная версия).. это должно работать таким образом? я что-то упустил? если это так, то как я должен использовать API для работы, чтобы участник использовал свою собственную учетную запись и использовал свои собственные учетные данные и мог использовать его в docusign API, а не в моей собственной учетной записи разработчика из-за «тестовой» индикации. заранее спасибо.


person Andre malupet    schedule 14.01.2014    source источник


Ответы (2)


API не включен в учетных записях бесплатной пробной версии DocuSign — он включен в бесплатных учетных записях песочницы разработчика (срок действия которых НЕ истекает через 30 дней). Единственный способ создать такие учетные записи — через Центр разработчиков DocuSign .

Конечно, если у вас есть активная интеграция, то есть вы прошли сертификацию с помощью DocuSign, тогда у вас может быть рабочая учетная запись с включенным API, но пока вы разрабатываете и тестируете, вы можете делать это только с учетными записями разработчиков, а не с бесплатными пробными версиями. .

person Ergin    schedule 14.01.2014
comment
я вижу.. так ли это на самом деле? Вы имеете в виду, что я не могу позволить каждому пользователю создать свою учетную запись в docusign? чтобы в договоре было написано, что это от них? и могу я спросить, как вы проходите сертификацию для docusign? - person Andre malupet; 14.01.2014
comment
Вы можете добавить нескольких пользователей через API или через консоль в свою учетную запись разработчика, если хотите протестировать с несколькими пользователями. Информацию о сертификации см. в разделе Go Live Центра разработчиков DocuSign: www.docusign.com/devcenter. - person Ergin; 14.01.2014

401 Требуется авторизация

Если код подходит для учетной записи разработчика, причина должна заключаться в привилегиях учетной записи.

person msg7086    schedule 14.01.2014
comment
да, это то, что я читал об этом, но все разрешения для учетной записи проверяются, по крайней мере, вся соответствующая информация, означающая, кроме точки транзакции powerforms и evault в нижней части ... и некоторые из них проверяются изначально, а некоторые размыты и не проверяются изначально .. а именно подписание вложений подписанта на бумаге - person Andre malupet; 14.01.2014