Предварительное резервирование мест

<< Оглавление >>

Навигация:  Функциональные методы > Бронирование >

Предварительное резервирование мест

ПредыдущаяВернуться на уроветь вверхСледующая

Function SetPreReservation(strInp: string): string;

Метод осуществляет резервирование указанных мест в БД таким образом, чтобы эти места на заданное время (глобальный параметр системы, от 3 до 30 мин.) стали недоступны для резервирования или бронирования с рабочего места ПО «ПрофТикет» и вызовам данного метода с другим значением идентификатора сессии. В том случае, если при попытке резервирования выяснится, что все или часть мест не являются свободными, резервирование таких мест не выполняется. Метод возвращает в качестве результата коллекцию кодов возврата, каждый элемент которой соответствует элементу исходной коллекции мест, и содержит код, указывающий на успешность или неуспешность выполнения резервирования. Метод можно вызывать сколько угодно раз в рамках одной сессии, пока места не будут забронированы и оплачены.

 

Описание входных параметров.

- NomBilKn - Идентификатор события

- cod_sec Идентификатор сектора.

- row ряд

- seat место

- session - Идентификатор сессии

- [RemoteAddress] - IP адрес зрителя

- [PromoCodeID] - Идентификатор промокода

- [Price] - Цена билета

- [DisableDiscount] - Флаг неиспользовать скидку абонементной кампании. 1 - не использовать скидку, 0 или не указано использовать скидку при ее наличии.

- [PushkinCard]- Признак оплаты по Пушкинской карте.

- [EmailSpektator] - Email зрителя для проверки промокода, привязанного к Email.

- [CardNumber] - Номер или штрих-код дисконтной карты.

- [BenefitId] - Идентификатор скидки

 

[URL площадки продажи билетов (необязательный раздел)]

- SourceURL - URL площадки продажи билетов

 

[Подарочные сертификаты]

- Number Номер сертификата

 

[Скидки]

- BenefitId - Идентификатор вида скидочной карты

- BenefitCardId - Номер скидочной карты

 

 

Описание полей в выходных данных

- cod_sec Идентификатор сектора.

- name_sec Наименование сектора.

- row ряд

- seat место

- price Цена билета (номинал).*

- priceSell Цена билета (продажи)* В случае, если указан промокод, цена продажи учитывает скидку по промокоду.

- priceForPay - Сумма к оплате. Если сертификаты не использутся, то равна цене продажи билета + сервисный сбор.

- ServiceFee - Сервисный сбор.

- priceSellFull - Сумма с учетом первоначальных наценок и скидок, без сервисного сбора, промокода и абонементной кампании,

- priceReturn - Максимальная сумма возврата

- CertificatePermitted - Место можно оплачивать сертификатом.

- TTL - Время в секундах, после которого места, находящиеся в предварительном резервировании могут быть сняты автоматически, если они не попали в заказ.

- PromoCodeID - Идентификатор промокода (если не указан во входных параметрах, то 0)

- PromoPercent - Процент по промокоду (если указан Идентификатор промокода и промокод актуален, в противном случае - 0)

- STCompanyDiscount - Процент скидки по абонементной кампании.

- DisableDiscount - Флаг неиспользовать скидку абонементной кампании

- DiscountProgramPercent - Процент скидки про дисконтной программе

- PushkinCard - Признак оплаты по Пушкинской карте.

- EmailSpektator - Email зрителя для проверки промокода, привязанного к Email.

- TicketAsGift - Возможность купить билет в подарок.

- StopRegistationDate - Дата и время, до которых разрешено оформление ПДн

- BenefitId - Идентификатор скидки

- result_code - Код ошибки.

- result_message - описание ошибки

 

[Подарочные сертификаты]

- Number Номер (штрих-код) сертификата

- Amount Номинал

- StartDate Дата начала действия сертификата.

- StopDate Дата окончания действия сертификата.

 

[Скидки]

- BenefitId - Идентификатор вида скидочной карты

- BenefitCardId - Номер скидочной карты

- BenefitDiscountPercent - Процент по скидочной карте

- BenefitDiscountSum - Сумма скидки по скидочной карте (в случае скидки в твердой сумме)

 

Время, через которое предварительное резервирование будет снято автоматически, может немного отличаться от TTL в большую сторону. Это зависит от времени запуска сервиса автоматического снятия предварительного резервирования.

 

Обратите внимание!

✓Для создания заказа с промокодом, его необходимо указать в вызове метода бронирования SetReservation!

✓Для создания продажи с промокодом, его необходимо указать в вызове метода продажи SetSold.

✓Если указан входящий параметр Price (цена), будет произведена проверка цены. В случае несовпадения цены у любого из мест в передаваемом наборе

✓Результатом будет код ошибки 20, а также поле GatePrice, возращающее переданую цену.

✓Структуру данных при передаче списка сертификатов для оплаты!

✓Структуру данных при передаче URL площадки продажи билетов!

✓Структуру данных при передаче номера скидочной карты!

 

Входной XML.

<GateReq>

<ReqLogin>

        <!--  Имя пользователя и пароль для авторизации -->

       <UserName>User</UserName>

       <UserPass>Password</UserPass>

</ReqLogin>

<ReqBody>

       <InputRow NomBilKn="234" cod_sec="1" row="1" seat="2" session="KFKDI23202828SBW4DAH8"/>  

       [<Certificates Number="1234567890" Amount="500.00" StartDate="01.01.2026" StopDate="31.12.2026">

        <Certificates Number="9876543210" Amount="500.00" StartDate="01.01.2026" StopDate="31.12.2026">

       ]

       [<Discount BenefitId="24" BenefitCardNumber="01234567890" />]

</ReqBody>

</GateReq>

 

Выходной XML.

<GateAnswer>

<AnswerResult>

  <ResultCode>0</ResultCode><!--  Код ответа шлюза, общий для всего запроса-->

  <RecordCount>1</RecordCount><!--  Количество записей в возвращаемом "RecordSet-е" -->

</AnswerResult>

<AnswerBody>

  <Row NomBilKn="234" cod_sec="1" row="1" seat="2" session="KFKDI23202828SBW4DAH8" price="1000" priceSell="900" priceForPay="900" priceFull="1000"  result_code="0" result_message="OK"/>

 

  <Certificates Number="1234567890" Amount="500.00" StartDate="01.08.2020" StopDate="31.07.2021">

  <Certificates Number="9876543210" Amount="500.00" StartDate="01.08.2020" StopDate="31.07.2021">

  <Discount BenefitId="24" BenefitCardNumber="01234567890" DiscountPercent="10" DiscountSum="0.00"  />

</AnswerBody>

</GateAnswer>