Помощь Обращение к API посредством перехода по ссылке. Как совершить переход через php? :(

Тема в разделе "Opencart", создана пользователем NinoZombie, 20 авг 2014.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. NinoZombie

    NinoZombie Постоялец

    Регистр.:
    27 окт 2013
    Сообщения:
    117
    Симпатии:
    28
    Стоит модуль, отправляющий смс-ки с сайта в автоматическом режиме. У модуля этого есть API, обращение к которому происходит через вызов адреса
    http://САЙТ.RU/index.php?route=sms/api&to=НОМЕР&text=СООБЩЕНИЕ&unicode=0&type=admin .
    Т.е. если в браузере открыть эту ссылку, то на экран выведется STATUS:OK и сообщение "СООБЩЕНИЕ" отправится на номер "НОМЕР" .
    Как мне обратиться к этой странице посредством PHP? (необходимо чтобы при нажатии определенной кнопки клиентом, админу присылалось смс сообщение)
     
  2. kir9-molodoi

    kir9-molodoi

    Регистр.:
    31 май 2014
    Сообщения:
    250
    Симпатии:
    78
    можно сделать так
    HTML:
    <button type="button" onclick="window.open('http://сайт.ru/index.php?route=sms/api&to=%D0%9D%D0%9E%D0%9C%D0%95%D0%A0&text=%D0%A1%D0%9E%D0%9E%D0%91%D0%A9%D0%95%D0%9D%D0%98%D0%95&unicode=0&type=admin')">Купить</button>
     
  3. NinoZombie

    NinoZombie Постоялец

    Регистр.:
    27 окт 2013
    Сообщения:
    117
    Симпатии:
    28
    Не подходит, так как пользователю выводить это окно не нужно :(
    Интересует именно реализация посредством php
     
  4. goodoker

    goodoker Постоялец

    Регистр.:
    7 окт 2012
    Сообщения:
    117
    Симпатии:
    49
    С помощью file_get_contents() ?
     
  5. kir9-molodoi

    kir9-molodoi

    Регистр.:
    31 май 2014
    Сообщения:
    250
    Симпатии:
    78
    тогда так
    PHP:
    <?php
    $send_sms
    =file_get_contents("
    http://сайт.ru/index.php?route=sms/api&to=%D0%9D%D0%9E%D0%9C%D0%95%D0%A0&text=%D0%A1%D0%9E%D0%9E%D0%91%D0%A9%D0%95%D0%9D%D0%98%D0%95&unicode=0&type=admin
    "
    );
    ?>

    <button type="button" onclick="<?php echo $send_sms?>">Купить</button>
    весь код добавлять в нужный шаблон *.tpl
     
  6. NinoZombie

    NinoZombie Постоялец

    Регистр.:
    27 окт 2013
    Сообщения:
    117
    Симпатии:
    28
    Не срабатывает по какой-то причине... Вообще ничего не возвращает функция.
    Что еще можно придумать? Может каким-то образом можно имитировать заход с браузера?
     
  7. kir9-molodoi

    kir9-molodoi

    Регистр.:
    31 май 2014
    Сообщения:
    250
    Симпатии:
    78
    странно почему не работает, т.к. я проверил и все нормально отсылает, правда на смс.ру, но принцип тот же
    http://sms.ru/sms/send?api_id=dbfcd1fd-b772-ce01-42a7-565e33d61486&to=12345678910&text=123456

    приведите код кнопки на какую хотите подцепить действие
     
  8. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Используйте ajax.
    Создаем php файл с приблизительном таким кодом:
    Код:
    $to = "";
    $text = "";
    $send_sms=file_get_contents("http://сайт.ru/index.php?route=sms/api&to=".$to."&text=".$text."&unicode=0&type=admin");
    Дальше на js пишем простеньки код для обработки нажатия, можно создать функцию и по весить onclick на кнопку
    Что то типо такого
    Код:
    function sms(){
          $.ajax({
                type: "GET",
                url: "sms.php",
                data: "text=TEXT&to=TO",
                success: function (responseText) {
          alert("success");
                }
            });
    }
    <button type="button" onclick="sms();">Купить</button>
    Как то так.

    Если нужен полностью рабочий код, пишите в лс договоримся)


    UP
    забыл, если обращаться нужно к скрипту который находится у вас сервере .
    тогда php вообще не надо. сразу в js указываем урл к скрипту и данные.
     
    Последнее редактирование: 20 авг 2014
    NinoZombie нравится это.
  9. LyToR

    LyToR Постоялец

    Регистр.:
    11 сен 2012
    Сообщения:
    145
    Симпатии:
    143
    Вы дайте тех задание,пример, и четкую формулировку. Версия движка? Где нажать? Нужна ли форма заполнения? Люди и так помогают а у Вас с каждым постом новая задача. И название модуля не забудьте указать.
    Или закрываю тему
     
    Последнее редактирование: 20 авг 2014
    kir9-molodoi нравится это.
  10. NinoZombie

    NinoZombie Постоялец

    Регистр.:
    27 окт 2013
    Сообщения:
    117
    Симпатии:
    28
    Прошу прощения, видимо уже глаза замылил - первый пост показался исчерпывающим.
    Условия:
    1) Opencart 1.5.6
    2) Стоит модуль CartSMS (https://yadi.sk/d/vdum-zk_YZwr6)
    3) При переходе браузера по адресу http://САЙТ.RU/index.php?route=sms/api&to=79241111111&text=TEST&unicode=0&type=admin на экран выводится STATUS:OK и сообщение "TEST" отправляется на номер "79241111111" .

    Задача:
    Сделать так, чтобы при нажатии кнопки <a>Предзаказ</a> отправлялось сообщение "preorder" на номер "79241111111" и на экран выводилось окошечко, к примеру "success" (как в решении предложенном SocMaster'ом) или вообще ничего не происходило (т.к. пока не суть. Оформить все красивенько это дело десятое)

    Проблема:
    Выполнение функции file_get_contents("http://САЙТ.RU/index.php?route=sms/api&to=79241111111&text=TEST&unicode=0&type=admin"); не возвращает ничего и смс не отсылается.