Подготавливаем страницу…
Подготавливаем страницу…
Самый простой случай: обычная HTML-форма на статичном сайте, Jekyll или Hugo. Перехватываем submit, отправляем копию в 1ОПД, продолжаем штатную отправку.
pk_ (publishable — можно публиковать в браузере)forms_scope=[id1, id2, …] — и в каждом запросе передаёте form_id в body.Создать ключ для своего сайта → ваш ЛК 1ОПД · Все endpoints → API Reference
<form id="lead-form">
<input name="email" type="email" required placeholder="Email" />
<input name="name" type="text" required placeholder="Имя" />
<input name="phone" type="tel" placeholder="Телефон" />
<label>
<input type="checkbox" required />
Согласен на обработку персональных данных
</label>
<button type="submit">Отправить</button>
</form>
<script>
document.getElementById('lead-form').addEventListener('submit', async function (e) {
e.preventDefault();
const fd = new FormData(e.target);
try {
const res = await fetch('https://v2.1opd.ru/api/v2/create-agreement', {
method: 'POST',
headers: {
// pk_ — публичный ключ; защищён через allowed_origins в ЛК
'API-KEY': 'pk_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json'
},
body: JSON.stringify({
form_id: 1,
hash_field: fd.get('email'),
fields: Array.from(fd.entries()).map(([k, v]) => ({
field: k,
value: String(v)
}))
})
});
const data = await res.json();
console.log('Hash:', data.hash);
} catch (err) {
console.warn('1ОПД error:', err);
}
// Здесь — ваша основная отправка (в свою CRM, на email, и т.д.)
e.target.submit();
});
</script>Origin для cross-origin запросов — подделать его из JS нельзя.allowed_origins ключа задаётся только host (без https:// и порта). Wildcard на первый сегмент: *.example.com подходит для shop.example.com, но не для самого example.com.HMAC требует секрет. Любой секрет в HTML/JS — это публичная информация: достаточно открыть DevTools. Поэтому HMAC включают только для server-side интеграций. Если нужна максимальная защита из браузера — ограничьтесь pk_ + строгим списком allowed_origins. См. Server-side API и API Reference.
Откройте ЛК → раздел «Интеграция». Там персональные snippet'ы с уже подставленным API-ключом и form_id.
Открыть ЛК →Запросите тестовый доступ — выдаём ключ под ваш домен и помогаем подключиться.
Связаться →Все endpoints, коды ошибок, форматы HMAC/Origin/IP. Таблица «какую защиту выбрать».
Открыть →