Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
backstage:6-nastroit-prodazhu-biletov-na-sayte-teatra [2020/09/21 08:34]
v.voronin
backstage:6-nastroit-prodazhu-biletov-na-sayte-teatra [2023/05/29 11:51] (текущий)
i.abramov
Строка 17: Строка 17:
  
 На той же странице генерируется скрипт для вставки на страницу вашего сайта. Пример такого скрипта: На той же странице генерируется скрипт для вставки на страницу вашего сайта. Пример такого скрипта:
 +<code html>
 <div id="tlFrameContainer"></div> <div id="tlFrameContainer"></div>
             <script type="text/javascript"></script>             <script type="text/javascript"></script>
Строка 31: Строка 31:
             document.body.appendChild(script);             document.body.appendChild(script);
             </script>             </script>
-          +</code>
    
  
Строка 66: Строка 66:
 Пример данных API: Пример данных API:
  
 +<code json>
         {         {
             "hall_id": "2244567",             "hall_id": "2244567",
             "hall_name": "Зал",             "hall_name": "Зал",
             "performance_id": 9999,             "performance_id": 9999,
 +            "performance_basis_id": 123456, // Если передан GET параметр ?extended=1
             "reveal_dt": "2001-01-01 00:00:00",             "reveal_dt": "2001-01-01 00:00:00",
             "script": "<script> var TLConf = {             "script": "<script> var TLConf = {
Строка 87: Строка 89:
             "total_ticket_count": 20             "total_ticket_count": 20
         }         }
 +</code>
  
   * //script// – готовый код для разворачивания фрейма Ticketland. В нем указана ссылка на схему зала  мероприятия по заданной дате.   * //script// – готовый код для разворачивания фрейма Ticketland. В нем указана ссылка на схему зала  мероприятия по заданной дате.
Строка 96: Строка 98:
 Пример PHP – кода для обращения к API – Ticketland: Пример PHP – кода для обращения к API – Ticketland:
  
 +<code php>
      if (!ini_get('allow_url_fopen')) {      if (!ini_get('allow_url_fopen')) {
         error_log("set allow_url_fopen to true or change script to use curl" . PHP_EOL);         error_log("set allow_url_fopen to true or change script to use curl" . PHP_EOL);
Строка 132: Строка 135:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
             print $result . PHP_EOL;             print $result . PHP_EOL;
 +</code>
  
  
Строка 137: Строка 141:
   * //password// – пароль от сервиса backstage.ticketland.ru   * //password// – пароль от сервиса backstage.ticketland.ru
   * //$result// – JSON – объект содержащий всю информацию из API – Ticketland   * //$result// – JSON – объект содержащий всю информацию из API – Ticketland
 +
 +----
 +
 +=== Расширенный Iframe (новая версия) ===
 +Теперь, используя каналы продаж, вы сможете получать заранее список мероприятий, которые еще не вышли в продажу, но дата выхода указана в системе для МДТЗК.
 +
 +Ссылка для подключения к новому API: https://backstage.ticketland.ru/frame/api/shows?get_future_performances=1
 +Формат авторизации не изменился и остается актуальным, чтобы получать новые данные достаточно указать для существующих обращений к API параметр «?get_future_performances=1».
 +
 +**Отличия в следующем:** 
 +  * В JSON-ответ будут попадать также мероприятия/фреймы, дата старта продаж по которым в будущем.
 +  * Для мероприятий, у которых в билетной системе установлена дата старта продаж, в параметре reveal_dt будет передаваться дата и время старта продаж. Для мероприятий, где это дата не установлена, передается значение для reveal_dt по умолчанию «2001-01-01 00:00:00».
 +
 +При подключении к новому API необходимо начать учитывать передаваемые в параметре reveal_dt дату и время. Параметр будет говорить, доступны ли сейчас продажи по конкретному мероприятию с установленным каналом продаж. То есть, если текущая дата и время больше указанных в reveal_dt, то продажи по мероприятию активны и клиенту можно давать страницу с виджетом.
 +
 +**Возможны 2 механики:**
 +  - Выводить на сайте мероприятия, чья дата продаж в будущем с неактивной кнопкой и информацией о старте продаж.
 +  - Не выводить на сайте мероприятие, чья дата старта продаж еще не началась.
 +
 +**Ниже возможная схеме регулировки отображения кнопок:**
 +{{:backstage:reguliprovka_knopok_api.png|}}
 +
 +----
  
 === Параметры TLConf === === Параметры TLConf ===
Строка 160: Строка 187:
 Для получения данных электронной торговли есть два способа Для получения данных электронной торговли есть два способа
  
-  - подписаться на событие передаваемое из "фрейма" через механизм postMessage. +  - подписаться на событие передаваемое из "фрейма" через механизм postMessage. Пример window.addEventListener('message', function(event){try{var json = JSON.parse(event.data)} catch(){}}, false); Документация https://developer.mozilla.org/ru/docs/Web/API/EventTarget/addEventListener 
-Пример window.addEventListener('message', function(event){try{var json = JSON.parse(event.data)} catch(){}}, false); +  - в конфиге переопределить функцию. <code js>TLConf.ecommerceCallback = function(ecommerce){};</code> ecommerce это объект с данными в формате расширенной электронной торговли https://developers.google.com/tag-manager/enhanced-ecommerce
-Документация https://developer.mozilla.org/ru/docs/Web/API/EventTarget/addEventListener +
- +
-  - в конфиге переопределить функцию. TLConf.ecommerceCallback = function(ecommerce){}; ecommerce это объект с данными в формате расширенной электронной торговли https://developers.google.com/tag-manager/enhanced-ecommerce+
  
 ** Покупка ** ** Покупка **
  
-{"ecommerce":{"purchase":{"actionField":{"id":"52346890","revenue":"600"},"products":[{"id":"1353580","name":"Юные таланты Бразилии, 2020-10-31 19:00:00","brand":"Театр имени","category":"Юные таланты Бразилии","variant":"eticket","quantity":1,"price":"600"}]}}}+<code JSON> 
 +{ 
 +  "ecommerce": 
 +    { 
 +      "purchase": 
 +        { 
 +          "actionField": 
 +            {"id":"52346890","revenue":"600"}, 
 +          "products":[ 
 +            { 
 +              "id":"1353580", 
 +              "name":"Юные таланты Бразилии, 2020-10-31 19:00:00", 
 +              "brand":"Театр имени", 
 +              "category":"Юные таланты Бразилии", 
 +              "variant":"eticket", 
 +              "quantity":1, 
 +              "price":"600" 
 +            } 
 +          ] 
 +        } 
 +    } 
 +} 
 +</code> 
 + 
 +---- 
 + 
 +=== Фрейм в Вконтакте === 
 + 
 +== Для организации продаж в социальной сети вконтакте нужно == 
 + 
 +  * Профиль социальной сети ВКонтакте 
 +  * Группа или публичная страница, где вы являетесь администратором 
 +  * доступ к номеру мобильного телефона, который привязан к вашему аккаунту ВКонтактe 
 + 
 +  - Запросите у саппорта личный iframe-hash(1) для vk.com 
 +  - Перейдите на страницу создания приложения https://vk.com/editapp?act=create  
 +    - Введите название вашего приложения, например «Купить билет» 
 +    - Выберите платформу: Встраиваемое приложение 
 +    - Нажмите кнопку "Перейти к настройке приложения" {{:backstage:vk-4-create-application.png?600|}} 
 +  - Выполните Подтверждение действия через SMS {{:backstage:vk-4-mobile-sms.png?400|}} 
 +  - В разделе 'Информация' поля 'Название', 'Описание', 'Краткое описание', 'Категория' заполнить на свое усмотрение. Иконку можете использовать свою, или нашу (если такая имеется) {{:backstage:vk-6-editapp.png?400|}} 
 +  - После этого смело нажимайте на кнопку 'Сохранить изменения' (не имеет значения под каким из блоков вы нажмете, сохранять все изменения во всех блоках) 
 +  - Далее переходим во вкладку настройки. Поле 'Состояние' выставить в 'Приложение включено и видно всем' 
 +  - Во всех блоках, где есть поле 'Url' вставить урл формата https://www.ticketland.ru/site/internalFrame/?iframe-internal=1&lite-layout=1&iframe-hash='iframe-hash(1)'в этом месте должен быть access hash фрейма, который вы запросили у саппорта&start-url=тут относительный урл на мероприятие на сайте тикетленда. Нажимаем 'Сохранить изменения'  {{:backstage:vk-7-com-editapp-settings.png?400|}} 
 +  - Переходим в сообщество, где вы являетесь администратором и нажимаем на кнопку 'Управление' {{:backstage:vk-8-community-settings.png?400|}} 
 +  - Переходим во вкладку 'Приложения' {{:backstage:vk-9-community-setting-app.png?400|}} и листаем в самый вниз, где видим наше приложение. {{:backstage:vk-10-my-app.png?400|}}Добавляем его и настраиваем так, как нам нужно. {{:backstage:vk-11-my-app-settings.png?400|}} Не забываем нажать кнопку Сохранить. 
 + 
 +После этого все готово и все работает 
  

backstage/6-nastroit-prodazhu-biletov-na-sayte-teatra.1600666445.txt.gz · Последнее изменение: 2020/09/21 08:34 — v.voronin