• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела wpt лично.

Помощь Как выполнить url запрос Bitrix?

dgkk

Профессор
Регистрация
16 Дек 2012
Сообщения
117
Реакции
47
Всем привет!
Подскажите, как выполнить URL запрос после регистрации пользователя в 1С-Битрикс?
Пытался так:
Код:
AddEventHandler("main", "OnAfterUserRegister", Array("Unisender", "OnAfterUserRegisterHandler"));
class Unisender
{
    function OnAfterUserRegisterHandler(&$arFields)
    {
            $unisender = file_get_contents('https://api.unisender.com/ru/api/subscribe?format=json&api_key=6o5qtwwi5tgtgr4jw97xc8ypocjbq8fz3u3e48ra&list_ids=20662459,14498425&fields[email]='.$arFields["EMAIL"].'&fields[Name]='.$arFields["NAME"].'');
            return $unisender;
   }
}
Но URL не выполняется.
Внутри функции пытался выполнить через cURL

Вот так работает
Код:
$ch = curl_init('https://api.unisender.com/ru/api/subscribe?format=json&api_key=6o5qtwwi5tgtgr4jw97xc8ypocjbq8fz3u3e48ra&list_ids=20662459,14498425&fields[email]='.$arFields["EMAIL"].'&fields[Name]='.$arFields["NAME"].'');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, 0);

        $data = curl_exec($ch);
        curl_close($ch);
Моих знаний не хватает, чтобы разобраться в чем проблема. После выполнения URL должен создаваться подписчик в Unisender.
Код:
$arFields["EMAIL"] = 'cmsjdk4tdwzj@mail.ru';
$arFields["NAME"] = 'test1';

$info = file_get_contents('https://api.unisender.com/ru/api/subscribe?format=json&api_key=6o5qtwwi5tgtgr4jw97xc8ypocjbq8fz3u3e48ra&list_ids=20662459,14498425&fields[email]='.$arFields["EMAIL"].'&fields[Name]='.$arFields["NAME"].'');
//$info = json_decode($info, true);
print_r($info);
Но так работает просто при загрузке страницы, а должно после регистрации пользователя. Читал в доках про стандартный метод выполнения URL, но как его реализовать не понял.
 
Всем привет!
Подскажите, как выполнить URL запрос после регистрации пользователя в 1С-Битрикс?

Привет. тоже столкнулся что в файле Для просмотра ссылки Войди или Зарегистрируйся/init.php
не работает функция file_get_contents но работает curl
поэтому просто используйте curl без стеснения, получится такой результат:
Код:
    function file_get_contents_curl($url) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_URL, $url);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }

AddEventHandler("main", "OnAfterUserRegister", Array("Unisender", "OnAfterUserRegisterHandler"));
class Unisender
{
    function OnAfterUserRegisterHandler(&$arFields)
    {
            $unisender = file_get_contents_curl('https://api.unisender.com/ru/api/subscribe?format=json&api_key=6o5qtwwi5tgtgr4jw97xc8ypocjbq8fz3u3e48ra&list_ids=20662459,14498425&fields[email]='.$arFields["EMAIL"].'&fields[Name]='.$arFields["NAME"].'');
            return $unisender;
   }
}
 
Последнее редактирование:
Не работает((

Проблема была в кирилических символах поля имя. В общем вот так работает
Код:
AddEventHandler("main", "OnAfterUserRegister", Array("Unisender", "OnAfterUserRegisterHandler"));
class Unisender
{
    function OnAfterUserRegisterHandler(&$arFields)
    {
        $phone = $arFields["PERSONAL_PHONE"];
        $phone_replace = preg_replace("/[^0-9]/", '', $phone);
        $info = file_get_contents('https://api.unisender.com/ru/api/subscribe?format=json&api_key=6o5qtwwi5tgtgr4jw97xc8ypocjbq8fz3u3e48ra&list_ids=20662459,14498425&fields[email]='.$arFields["EMAIL"].'&fields[phone]=+'.$phone_replace.'&fields[Name]='.urlencode($arFields["NAME"]));
    }
}
 
Последнее редактирование модератором:
Назад
Сверху