Бронирование мест на событие

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

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

Бронирование мест на событие

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

Function SetReservation(strInp: string): string;

Бронирование указанных мест осуществляется в БД при условии, что они находятся в состоянии резервирования за сессией с указанным идентификатором. Реквизиты заказа заносятся в БД таким образом, чтобы администратор программы мог получить информацию о реквизитах заказа для каждого места.

 

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

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

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

- row ряд

- seat место

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

- NameSpektator - ФИО зрителя

- TelSpektator - Телефон зрителя

- EmailSpektator - Email зрителя

- [CityName] - город зрителя

- [Gender] - пол зрителя  (необязательное поле. 0 - не указан, 1 - женский пол, 2 мужской пол, 3 - неопределен)

- [BirthDate] - Дата рождения в формате дд.мм.гггг

- [SendAdvertising] - Согласие на рассылку (рекламу).. 0 - не согласен (по-умолчанию), 1 - согласен. Данный параметр записывается в справочник зрителей. Если зритель уже существует в справочнике, параметр перезаписывается.

- [PinCode] - Пин-код заказа. 4 цифры. Если указан пин-код, то при выкупе заказа зритель должен назвать его кассиру. В противном случае заказ не будет распечатан. Пин-код формируется сайтом и передается в шлюз.

- [Delivery] - Наличие/отсутствие доставки (1  курьерская доставка,  0 - нет доставки) (необязательное поле при отсутствии доставки)

- [DeliveryDate] - Дата  доставки (необязательное поле при отсутствии доставки)

- [Address] - Адрес доставки (необязательное поле при отсутствии доставки)

- [MetroID] - Идентификатор станции метро.

- [OfficeID] - Идентификатор офиса. Указывается при самовывозе (т.е. отсутсвии доставки). Это предполагаемый офис выкупа билетов. Если забронирован один или несколько "живых" билетов, то указать Идентификатор офиса обязательно.

- [Notes] - Комментарий

- [OrderID] - Идентификатор заказа в БД сайта или платежной системе

- [DeliveryService] - Идентификатор услуги доставки (необязательное поле при отсутствии доставки)

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

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

- [isPaidOrder] - Признак заведомо оплачиваемого заказа.

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

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

- [withQRCode] - Флаг - покупатель подтверждает наличие QR кода о вакцинации*.

- [GroupOrder] - Признак группового заказа.. 0 - не групповой заказ (по-умолчанию). 1 - групповой заказ

- [MultiPayGroup] - Для группового заказа возможность оплатить несколько билетов одним плательщиком.. 0 - нельзя одному плательщику выкупить несколько мест (по-умолчанию). 1 - можно.

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

- [VisitorDataDelayedInput] - Флаг - данные посетителя будут переданы после покупки.

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

 

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

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

 

[Скидки]

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

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

 

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

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

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

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

- row ряд.

- seat место.

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

- priceSell - Цена билета (продажи)* c учетом введенного промокода и прочих возможных скидок

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

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

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

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

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

 

- IDSpectator Идентификатор зрителя.

- NameSpektator ФИО зрителя

- TelSpektator Телефон зрителя

- EmailSpektator Email зрителя

- CityName - Город зрителя,

- Gender - Пол зрителя (0 - не указан, 1 - женский пол, 2 мужской пол, 3 - неопределен)

- BirthDate - Дата рождения

- Delivery Наличие/отсутствие доставки (1 есть доставка, 0 - нет доставки)

- DeliveryDate - Предполагаемая дата  доставки

- Address - Адрес доставки

- MetroID - Идентификатор станции метро.

- Metro - Наименование станции метро.

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

- OfficeName - Наименование офиса.

- Notes - Комментарий

- OrderID - Идентификатор заказа в БД сайта или платежной системе

- DeliveryService - Идентификатор услуги доставки

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

- ReservID - номер заказа (в случае ошибки равен 0)

- Barcode - штрих-код места

- ReservDate - дата "выкупа" заказа (в случае ошибки пустая)

- ReservTime - время "выкупа" заказа (в случае ошибки пустое)

- BlockTTL - Время блокировки заказа в секундах. (Время, в течение которого заказ блокирован для любых действий с ним, кроме как через шлюз)

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

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

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

- SupplierID - Идентификатор поставщика (Только для собственного сайта. Для стороннего сайта - поле пустое).

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

- withQRCode - Флаг - покупатель подтверждает наличие QR кода о вакцинации,

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

- VisitorDataDelayedInput - Флаг - данные посетителя будут переданы после покупки.

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

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

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

ReservDate и ReservTime - дата и время "выкупа" заказа. По истечение данного времени заказ считается "просроченным" и может быть снят сотрудниками театра/агентства либо автоматическим сервисом. На данный момент времени, заказы, оформленные на доставку автоматически не снимаются.

После оплаты (метод SetSold) заказ не может быть снят и его дата и время "выкупа" становятся равной максимальной дате и времени мероприятий входящих в его состав.

 

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

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

- Amount Номинал

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

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

 

[Скидки]

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

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

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

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

 

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

При наличии доставки поля: "Delivery"  "DeliveryDate", "Address" и "DeliveryService" являются обязательными!

После оформления зрителем заказа, если продажа не последует, следует сменить номер сессии для зрителя!

Признак заведомо оплачиваемого заказа устанавливается для того, чтобы отличить заказы которые могут быть проданы в кассе площадки, от тех которые будут оплачиваться электронно. У таких заказов дата выкупа заказа может быть меньше простых заказов и кроме разницы в дате выкупа заказы не отличаются.

По-умолчание заказ не имеет признак заведомо оплачиваемого.

Если к событиям, входящим в заказ, может быть примененима скидка по абонементой кfмпании, она будет рассчитана исходя из кол-ва мест, находящихся в заказе в текущий момент. При этом сумма скидки может измениться в последующем, если в заказ будут добавлены или удалены места.

Если событие имеет флаг QRCodeOnly - на событие допускаются только зрители с наличием QR кода о вакцинации, то поле withQRCode обязательно и должно быть равным 1.

 

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

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

на структуру передаваемых данных по сертификатам и скидкам!

 

Входной XML.

<GateReq>

<ReqLogin>

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

       <UserName>User</UserName>

       <UserPass>Password</UserPass>

</ReqLogin>

<ReqBody>

       <InputRow NomBilKn="125" cod_sec="1" Row="1" Seat="1" NameSpektator="Иванов Иван" TelSpektator="+7(111)111-1144" EmailSpektator="ivanov@mail.ru" session="JF83325NKEDFBSAL829"/>

 

[<Certificates Number="124396531808071091"/>

 

<Certificates Number="113058751407531493"/>

 

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

</ReqBody>

</GateReq>

 

Выходной XML.

<GateAnswer>

<AnswerResult>

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

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

</AnswerResult>

<AnswerBody>

  <Row NomBilKn="125" cod_sec="1" row="1" seat="1" price="1000" priceSell="1000" ReservID="2565" ReservDate="15.06.2026" ReservTime="19:00" NameSpektator="Иванов Иван" TelSpektator="+7(111)111-1144" EmailSpektator="ivanov@mail.ru" result_code="0" result_message="OK"/>

 

 [

 <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" DiscountPercent="5" DiscountSum="0.00" />

 ]

</AnswerBody>

</GateAnswer>