Итак, я пытаюсь использовать REST и cURL с PHP (Codeigniter) для входа в нашу учетную запись DocuSign dev из нашего пользовательского интерфейса. Это код, который я до сих пор:HTTP-аутентификация с использованием формы входа
<?php
$integratorKey = '****-********-****-****-****-************';
$username = '';
$password = '';
$header = "<DocuSignCredentials><Username>" . $username . "</Username><Password>" . $password . "</Password><IntegratorKey>" . $integratorKey . "</IntegratorKey></DocuSignCredentials>";
$url = "https://demo.docusign.net/restapi/v2/login_information";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, array("Content-Type: application/xml"));
curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-DocuSign-Authentication: $header"));
curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, 1);
$output = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status != 200) {
echo "error calling webservice, status is:" . $status;
exit(-1);
}
$response = json_decode($output, true);
$accountId = $response["loginAccounts"][0]["accountId"];
$baseUrl = $response["loginAccounts"][0]["baseUrl"];
curl_close($ch);
?>
<div id="container">
<h1>Welcome</h1>
<div id="login_form">
<h1>Login</h1>
<?php
echo form_open('login/hello');
echo form_input($username, 'Username');
echo form_password($password, 'Password');
echo form_submit('submit', 'Submit');
?>
</div>
</div>
Ошибка я получаю 400. Я понимаю, что это, вероятно, потому, что он посылает заголовок, прежде чем пользователь может ввести имя пользователя и пароль. Наверное, я не уверен, как заставить его «ждать» до нажатия кнопки «Отправить» перед отправкой запроса заголовка. Это один из моих первых набегов на REST и cURL. Любая помощь будет принята с благодарностью.
Этот код на этой странице? Или вы отправляете регистрационную форму где-нибудь, чем обрабатываете соединение cURL? – stormdrain
Все на той же странице. – duckie715
Вам нужно обернуть код, чтобы дождаться отправки формы или отправить форму входа в отдельный обработчик. –