Обычно взаимодействие происходит следующим образом - программист 1С предоставляет несколько URL для фиксации различных событий (заказ, оплата и т.д.) и логин/пароль к ним. Данные обычно передаются в виде JSON-массива.
Пример отправки заказа через CURL:
// Отправка заказа в 1C
$order = array();
$order['deal_id'] = '123';
$order['deal_date'] = time();
$order['deal_name'] = 'Иван Иванов';
$order['deal_email'] = 'mail@example.com';
$order['deal_phoneNumber'] = '+79031234567';
$order['deal_price'] = '100.00';
$array = json_encode($order, JSON_UNESCAPED_UNICODE);
$ch = curl_init('http://адрес_сайта/метод');
curl_setopt($ch, CURLOPT_USERPWD, 'Логин:Пароль');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $array);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$html = curl_exec($ch);
curl_close($ch);
Для того чтобы облегчить отладку, можно сделать запись отправленных и полученных данных в лог-файл, добавив строки:
// Запись отправленных и полученных данных в лог-файл
$log = date('Y-m-d H:i:s') . "\r\n";
$log .= print_r($order, true) . "\r\n" . print_r($html, true);
file_put_contents(__DIR__ . '/log.txt', $log . PHP_EOL, FILE_APPEND);
Пример лога:
Применяется когда на сайте нужно изменить некий статус по запросу из 1C. В таком случаи пишется скрипт-вебхук (например https://example.com/input-1c.php):
<?php
$data = file_get_contents('php://input');
$data = json_decode($data, true);
// Запись полученных данных в лог-файл
$log = date('Y-m-d H:i:s') . "\r\n";
$log .= print_r($data, true);
file_put_contents(__DIR__ . '/log.txt', $log . PHP_EOL, FILE_APPEND);
if (!empty($data['проверяемое_поле'])) {
// Тут должны происходить некие действия с БД сайта.
exit('OK');
} else {
exit('ERROR');
}