При интеграции Битрикс24 и DataMart (Москвич) возникла необходимость генерации кода ref_key для передачи трафика дилера. В процессе работы ref_key используется во всех сущностях Битрикс24 (лиды, сделки, контакты, компании).
Код генерации выглядит следующим образом:
// Генерация 16 байт (128 бит) случайных данных.Код генерации выглядит следующим образом:
$data = random_bytes(16);
assert(strlen($data) == 16);
// Версия 0100
$data[6] = chr(ord($data[6]) & 0x0f | 0x40);
// Установление значения от 6-7 до 10
$data[8] = chr(ord($data[8]) & 0x3f | 0x80);
// Вывод 36-символьного UUID.
echo $ref_key = vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
Код выполняется при изменении сущности с помощью бизнес-процесса.