docusign api создать новую учетную запись

я создал основную учетную запись вручную на docusign, и теперь я хочу создавать новых пользователей, используя эту учетную запись. Это мой код:

$integratorKey = 'XXXX-XXXXX-XXXX-XXXX-XXXX-XXXXXXXX';
$email = 'my-email';
$password = 'XXXX';
$name = 'User';

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



$data = '{
  "newUsers":[{
    "activationAccessCode":"",
    "email":"[email protected]",
    "enableConnectForUser":"",
    "firstName":"",
    "forgottenPasswordInfo":{
      "forgottenPasswordAnswer1":"",
      "forgottenPasswordAnswer2":"",
      "forgottenPasswordAnswer3":"",
      "forgottenPasswordAnswer4":"",
      "forgottenPasswordQuestion1":"",
      "forgottenPasswordQuestion2":"",
      "forgottenPasswordQuestion3":"",
      "forgottenPasswordQuestion4":""
    },
    "groupList":{
      "groupId":"",
      "groupId":""
    },
    "lastName":"",
    "middleName":"",
    "password":"",
    "sendActivationOnInvalidLogin":"",
    "suffixName":"",
    "title":"",
    "userName":"username",
    "userSettings":[{
      "name":"",
      "value":""
    }]
  }]
}';  




$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"
."\r\n";

$url = "https://demo.docusign.net/restapi/v2/accounts";


$curl = curl_init($url);
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: application/json',
    '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);

var_dump($response);

Ошибка, которую я получаю, такова: { "errorCode": "INVALID_REQUEST_BODY", "message": "Тело запроса отсутствует или имеет неправильный формат. Входная строка имеет неправильный формат". }. Может ли кто-нибудь сказать мне, в чем проблема?


person user1285659    schedule 04.11.2013    source источник
comment
Используйте json_encode для массива данных вместо того, чтобы пытаться создать JSON в виде строки вручную.   -  person fire    schedule 04.11.2013
comment
похоже, это не проблема с синтаксисом json, потому что, когда я использую json_decode, я получаю массив... я использую пример из этой ссылки: docusign.com/p/RESTAPIGuide/Content/REST%20API%20References/.   -  person user1285659    schedule 04.11.2013
comment
Глядя на их пример, кажется, что CURLOPT_POSTFIELDS должно быть $data, а не $requestBody, попробуйте это.   -  person fire    schedule 04.11.2013
comment
Я понял. это была проблема с форматом json. я удалил все ненужные значения, и это сработало .. спасибо   -  person user1285659    schedule 04.11.2013
comment
не могли бы вы опубликовать ответ здесь и отметить вопрос как решенный?   -  person mikebz    schedule 04.11.2013


Ответы (1)


У разработчика возникла проблема с форматом json. Были удалены нежелательные значения, и теперь они работают (на основе комментариев выше). Убедитесь, что это помечено как ответ.

person Inbar Gazit    schedule 14.08.2019