HttpClient
Ссылки
- https://dev.1c-bitrix.ru/api_d7/bitrix/main/web/httpclient/__construct.php
- https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&CHAPTER_ID=02795&sphrase_id=141985274
- https://dev.1c-bitrix.ru/api_d7/bitrix/main/web/httpclient/curl.php
- https://dev.1c-bitrix.ru/api_d7/bitrix/main/web/httpclient/asynchronous_requests.php
- https://dev.1c-bitrix.ru/api_d7/bitrix/main/web/httpclient/legacy.php
- https://www.php-fig.org/psr/psr-18/
- https://dev.1c-bitrix.ru/api_d7/bitrix/main/web/httpclient/psr18.php
<?php
declare(strict_types=1);
namespace DTerra\App\Http;
use Bitrix\Main\Web\HttpClient;
use DTerra\App\DTO\Lid;
class CRMLidClient
{
private HttpClient $httpClient;
private string $baseurl;
public function __construct()
{
$this->baseurl = '...';
$this->httpClient = new HttpClient();
$this->httpClient->setHeader('Accept', 'application/json');
}
public function createNewLid(Lid $lid): string|bool {
$url = $this->baseurl . '/crm.lead.add.json';
$getOptions = [
'FIELDS[TITLE]' => $lid->getTitle(),
'FIELDS[NAME]' => $lid->getName(),
'FIELDS[LAST_NAME]' => $lid->getLastName(),
'FIELDS[EMAIL][0][VALUE]' => $lid->getEmail(),
'FIELDS[EMAIL][0][VALUE_TYPE]' => $lid->getEmailType(),
'FIELDS[PHONE][0][VALUE]' => $lid->getPhone(),
'FIELDS[PHONE][0][VALUE_TYPE]' => $lid->getPhoneType(),
'FIELDS[UF_CRM_1726674017653]' => $lid->getFileLink(),
'FIELDS[SOURCE_ID]' => $lid->getSourceID(),
'FIELDS[COMMENTS]' => $lid->getComment(),
];
if (!empty($lid->getLidPrice())) {
$getOptions['FIELDS[OPPORTUNITY]'] = $lid->getLidPrice();
}
$url .= '?' . http_build_query($getOptions);
return $this->httpClient->post(
$url,
);
}
}