مستندات وب سرویس

Event Retrieval B2B

Download Markdown for LLM

متد GetEvents

این متد برای دریافت Event های سیستم فروش و رزرواسیون استفاده می گردد.

کاربرد این متد برای مجموعه های نرم افزاری می باشد که می خواهند به اطلاعات فروش و اتفاقات روی داده در سیستم یک تامین کننده دسترسی داشته باشند.

این متد باید هر چند دقیقه یک بار (یا هر چند ساعت یکبار، بسته به نیاز شما) فراخوانی شده و لیست رویدادهای جدید دریافت گردد.

این متد حداکثر 5000 عدد رکورد خروجی می دهد. در صورتی که بازه تاریخی درخواست شما بزرگ باشد و سیستم بیش از 5000 عدد رویداد برگشت دهد، می بایست تاریخ آخرین رویدادی که این متد خروجی داده است را بدست آورده و مجددا یک درخواست جدید ارسال نمایید که FromDate آن، تاریخ آخرین رویداد قبلی باشد.

جهت استفاده از این متد نیاز می باشد IP شما به عنوان Trust در سیستم سپهر تعریف گردد.

خروجی رویدادهای این متد، معمولا 1 دقیقه عقب تر از رویدادهای اتفاق افتاده در سیستم می باشد. به بیان دیگر، رویدادها معمولا با یک دقیقه تاخیر خروجی داده می شود.

خروجی Json این متد دقیقا شبیه و برابر با خروجی است که به صورت دستی از سیستم رزرواسیون می تواند دریافت کرد. جهت دریافت خروجی به صورت دستی، در سیستم سپهر وارد سیستم جدید شده، منوی گزارش عملکرد فروش و منو Json را انتخاب نمایید. دریافت Json به صورت دستی به شما این امکان را می دهد که بدون پیاده سازی وب سرویس، به اطلاعات رویدادهای سیستم دسترسی پیدا نمایید. و نیاز به IP Trust یا طی مراحل اداری نمی باشد.

فرمت رویداد و Json های خروجی این متد بسیار شبیه به خروجی متد EventRetrieval/B2M می باشد ولی عینا با آن یکی نیست و در قسمت هایی متفاوت می باشد.

زمان (تاریخ و ساعت) هایی که در این وب سرویس خروجی داده میشود – مثلا فیلد BookingDateTime – بر اساس ناحیه زمانی UTC می باشد و در صورت نیاز باید آنها را به زمان ایران تبدیل نمایید.

زمان پرواز به ناحیه زمانی محلی خروجی داده می شود. مثلا برای یک پرواز تهران استانبول، زمان خروج از مبدا به ناحیه زمانی ایران و زمان رسیدن به مقصد به ناحیه زمانی ترکیه خروجی داده می شود. زمان ورود به هتل یا خروج از هتل نیز بر اساس زمان محلی کشوری که هتل در آن قرار دارد خروجی داده می شود.

در طول زمان ممکن است ورژن جدیدتری از یک event در سیستم سپهر ایجاد شود. در این حالت به مدت 2 ماه به صورت همزمان هم ورژن قبلی و هم ورژن جدید از آن event خروجی داده می شود و پس از مدت 2 ماه، در صورت اتفاق افتادن آن event، سپهر فقط ورژن جدیدتر را خروجی می دهد. لازم به ذکر است event های قبلی با همان ورژن قبلی به صورت همیشگی در سیستم باقی می مانند و توسط این وب سرویس خروجی داده می شوند و تغییراتی روی رویدادهایی که در تاریخ جدیدتر اتفاق افتاده اند ایجاد می شود. با توجه به این توضیحات لازم است که شما زمانی را برای پشتیبانی از مشتری و پیاده سازی رویدادهای جدید در نظر بگیرید، زیرا بعد از ایجاد ورژن جدیدی از یک event، تحت هیچ شرایطی سپهر ایجاد event با ورژن قبلی را بیش از 2 ماه ادامه نخواهد داد. همچنین تمام مشکلات یا نیازهای احتمالی از سمت مشتری باید ابتدا به شما اعلام شده و پس از بررسی از سمت شما، آن مشکل یا نیاز به سپهر ارجاع داده شود. بنابراین خواهشمندیم بدون بررسی کردن مشکلات اعلامی از سمت مشتری توسط خود شما، آن موضوع را به سپهر ارجاع ندهید.


API Endpoint

POST https://{SupplierWebsiteUrl}/api/ThirdParties/EventRetrieval/B2B/V1/GetEvents

Request Headers

لطفا دقت نموده که به همراه تمامی درخواست های خود، header های زیر را نیز ارسال نمایید.

  • Content-Type: application/json; charset=utf-8

    required

    استفاده از این Header مشخص می کند که فرمت درخواست شما json بوده و encoding که برای ارسال اطلاعات استفاده شده utf-8 می باشد.

  • Accept: application/json

    required

    استفاده از این Header به سرور سپهر اعلام می کند که باید جواب را به صورت json برگشت دهد.

  • Accept-Encoding: gzip, deflate

    required

    استفاده از این Header باعث می گردد جواب برگشتی از سرور به صورت فشرده شده باشد.


Request Parameters

  • Username

    string

    required

    نام کاربری

  • Password

    string

    required

    رمز عبور به صورت MD5

  • FromDatetime

    string

    required

    تاریخ شروع دریافت رویداد ها با فرمت yyyy-MM-dd HH:mm:ss به صورت میلادی و بر اساس ناحیه زمانی UTC

  • ToDatetime

    string

    required

    تاریخ پایان دریافت رویداد ها با فرمت yyyy-MM-dd HH:mm:ss به صورت میلادی و بر اساس ناحیه زمانی UTC

  • EventTypeList

    Array of string

    required

    نوع ایوینت هایی که تمایل به دریافت آن را دارید

    در حال حاضر موارد زیر را به عنوان نوع رویداد می توانید ارسال نمایید

    • FederatedFlight.FlightBookedV2
    • CharterFlight.BookingSegmentCancelledV1
    • CharterFlight.BookingFlightSegmentReplacedV1
    • CharterFlight.BookingFlightSegmentChangedV1
    • CharterFlight.PassengerAddedToBookingV1
    • CharterFlight.SegmentAddedToBookingV1
    • WebserviceFlight.BookingFlightSegmentCancelledV1
    • FederatedHotel.HotelBookedV1
    • TourBundle.TourBundleBookedV2

Sample Request

curl -X POST https://SepehrApiTest.ir/api/ThirdParties/EventRetrieval/B2B/V1/GetEvents \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip, deflate" \
  -d '{
  "Username": "testdev1",
  "Password": "25f9e794323b453885f5181f1b624d0b",
  "FromDatetime": "2021-09-28 00:00:00",
  "ToDatetime": "2021-10-01 00:00:00",
  "EventTypeList": [
    "FederatedFlight.FlightBookedV2",
    "CharterFlight.BookingSegmentCancelledV1",
    "FederatedHotel.HotelBookedV1",
    "TourBundle.TourBundleBookedV2",
    "CharterFlight.BookingFlightSegmentReplacedV1"
  ]
}'

Response Parameters

  • EventList

    Array of events

    لیست رویدادها

    + نمایش ویژگی‌های زیرمجموعه

    • EventList.Id

      number

      شناسه منحصر به فرد یک رویداد

    • EventList.Type

      string

      نوع رویداد. که براساس آن فیلد Data باید تفسیر گردد.

    • EventList.CreateDateTime

      string

      زمان رخ دادن رویداد. با فرمت yyyy-MM-dd HH:mm:ss به صورت میلادی و بر اساس ناحیه زمانی UTC

    • EventList.Data

      string

      محتوای رویداد


Sample Response

{
  "EventList": [
    {
      "Id": 27030,
      "Type": "CharterFlight.BookingSegmentCancelledV1",
      "CreateDateTime": "2021-09-28 09:31:32",
      "Data": {
        "Pnr": "CBE288",
        "SerialNumber": 213463,
        "ReserveForUserId": 1903,
        "ReserveForAgencyId": 6575,
        "ReserveForAgencyName": "تست ادمين1",
        "BookingDateTimeUtc": "2021-09-28 07:53:39",
        "PaymentTypeId": 1,
        "CancelledByUserId": 1893,
        "CancelledByUsername": "amini",
        "CancelationDateTimeUtc": "2021-09-28 09:31:32",
        "CancelledFlightInfo": {
          "FlightId": 39829,
          "FlightClassId": 798203,
          "FlightNumber": "010",
          "FlightDate": "2021-10-05 03:30",
          "OriginIataCode": "IKA",
          "DestinationIataCode": "ADB",
          "BookingCode": "Y",
          "FareName": "547",
          "AirlineIataCode": "XC"
        },
        "Passengers": [
          {
            "FirstName": "SAM",
            "LastName": "SMITH",
            "AgeTypeCode": "ADL",
            "TicketNumber": 1525266,
            "SaleInfo": {
              "BaseFare": 3700000,
              "Tax": 0,
              "TotalFare": 3700000,
              "CommisionPercent": 3,
              "CalculatedAmountOfCommisionPercent": 111000,
              "CommisionValue": 0,
              "Discount": 0,
              "Surcharge": 0,
              "Payable": 3589000
            },
            "PenaltyPolicyPercent": 30,
            "PenaltyAmountThatPassengerShouldPay": 1076700,
            "OppositeFlightOnewayAndRoundtripPayableDifferenceThatPassengerShouldHaveCharged": 0,
            "OppositeFlightOnewayAndRoundtripPayableDifferenceThatPassengerCharged": 0,
            "AmountThatShouldPayBackToPassenger": 2221300,
            "OppositeFlight": {
              "FlightId": 40187,
              "FlightNumber": "020",
              "FlightDate": "2021-09-28 13:00",
              "OriginIataCode": "ADB",
              "DestinationIataCode": "IKA",
              "OnewaySaleInfo": {
                "BaseFare": 3400000,
                "Tax": 0,
                "TotalFare": 3400000,
                "CommisionPercent": 3,
                "CalculatedAmountOfCommisionPercent": 102000,
                "CommisionValue": 0,
                "Discount": 0,
                "Surcharge": 0,
                "Payable": 3298000
              },
              "RoundtripSaleInfo": {
                "BaseFare": 3100000,
                "Tax": 0,
                "TotalFare": 3100000,
                "CommisionPercent": 3,
                "CalculatedAmountOfCommisionPercent": 93000,
                "CommisionValue": 0,
                "Discount": 0,
                "Surcharge": 0,
                "Payable": 3007000
              }
            }
          }
        ],
        "SaleCurrency": {
          "Id": 1,
          "Code": "IRR"
        }
      }
    },
    // ... بیشتر رویدادها با ساختار مشابه
  ]
}