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

متد Event Retrieval B2M

Download Markdown for LLM

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

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

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

در صورتی که در حال پیاده سازی این وب سرویس برای مشتری هستید که نیاز آن مشتری دریافت Event ها از سایر سیستم های سپهراست، لطفا از متد EventRetrieval/B2B استفاده نمایید.

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

جهت استفاده از این متد نیاز می باشد IP شما به عنوان Trust در سیستم سپهر تعریف گردد. جهت انجام این مورد، نیاز می باشد که مجموعه ای که قصد دریافت اطلاعات از آن را دارید، روی سربرگ رسمی IP را به مجموعه سپهر اعلام نماید. جهت دریافت نمونه درخواست، اینجا کلیک نمایید. همچنین برای تست می توانید از محیط تستی (سایت SepehrApiTest.ir) استفاده نمایید که تراست کردن IP بدون نیاز به طی مراحل رسمی و اداری امکان پذیر است. برای استفاده از محیط تست کافی است IP خود را از طریق واترآپ یا تلگرام به ما اعلام نمایید.

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

خروجی Json این متد دقیقا شبیه و برابر با خروجی است که به صورت دستی از سیستم رزرواسیون می تواند دریافت کرد.


API Endpoint

POST https://{SupplierWebsiteUrl}/api/ThirdParties/EventRetrieval/B2M/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

  • 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
    • CharterFlight.PassengerListImportedV1
    • CharterFlight.FlightAddedV1
    • CharterFlight.FlightUpdatedV1
    • CharterFlight.FlightClassAddedV1
    • CharterFlight.FlightClassUpdatedV1
    • CharterFlight.FlightClassViewFilterUpdatedV1
    • WebserviceFlight.BookingFlightSegmentCancelledV1
    • FederatedHotel.HotelBookedV1
    • TourBundle.TourBundleBookedV2
    • Federated.PassengerInfoChangedV1
    • IPG.AccountCharged
    • IPG.PaymentLinkPaid
    • Finance.CurrencyUpdatedV1

Sample Request

curl -X POST https://SepehrApiTest.ir/api/ThirdParties/EventRetrieval/B2M/V1/GetEvents \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip, deflate" \
  -d '{
  "FromDatetime": "2021-10-10 00:00:00",
  "ToDatetime": "2022-10-10 01:23:56",
  "EventTypeList": [
    "FederatedFlight.FlightBookedV2",
    "CharterFlight.BookingSegmentCancelledV1",
    "FederatedHotel.HotelBookedV1",
    "TourBundle.TourBundleBookedV2",
    "CharterFlight.BookingFlightSegmentReplacedV1",
    "Federated.PassengerInfoChangedV1"
  ]
}'

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": 24634,
      "Type": "FederatedFlight.FlightBookedV2",
      "CreateDateTime": "2021-05-01 05:42:24",
      "Data": {
        "Pnr": "KI8HCG",
        "SerialNumber": 212959,
        "Phone": "+989385545109",
        "Email": "TEST@gmail.com",
        "Address": "",
        "Remarks": "",
        "ReserveForAgencyId": 2822,
        "ReserveForAgencyName": "فروش نقدي اينترنتي",
        "ReserveForUserId": 5277,
        "ReserveForUserName": "فروش نقدي اينترنتي",
        "ReserveByUserId": 5277,
        "ReserveByUserName": "فروش نقدي اينترنتي",
        "UserIp": "192.168.1.22",
        "IsBookedByExternalApi": false,
        "CookieTraceId": "50c9ecf0-920a-41a6-8d94-e46175ca6216",
        "BookingDateTimeUtc": "2021-05-01 05:42:24",
        "TotalSalePayableOfCharterSegments": 0,
        "TotalSalePayableOfWebserviceSegments": 3517500,
        "TotalSalePayable": 3517500,
        "SaleCurrency": {
          "Id": 1,
          "Code": "IRR"
        },
        "Passengers": [
          {
            "AgeTypeId": 1,
            "FirstName": "TEST",
            "LastName": "TEST",
            "IranianCartMelli": {
              "CodeMelli": "0021961522"
            },
            "Passport": null,
            "Gender": 2,
            "Birthdate": "1999-01-07",
            "CharterSegments": [],
            "WebserviceSegments": [
              {
                "Flight": {
                  "FlightNumber": "958",
                  "FlightDate": "2021-05-01 12:00",
                  "DurationInMinute": 0,
                  "OriginIataCode": "TBZ",
                  "DestinationIataCode": "THR",
                  "BookingCode": "Y",
                  "FareName": "AC11",
                  "SupplierId": 5,
                  "AirlineIataCode": "EP"
                },
                "SupplierId": 5,
                "SupplierPnr": "JMAL6X",
                "SupplierTicketNumber": 0,
                "PrimarySupplier": null,
                "LocalTicketNumber": 0,
                "JarimeCanceliFaText": null,
                "JarimeCanceliEnText": null,
                "BuyInfo": {
                  "CurrencyId": 1,
                  "NerkheTabdileArzeKharidBeArzePaye": 1,
                  "BaseFare": 3350000,
                  "Tax": 0,
                  "TotalFare": 3350000,
                  "Commision": 0,
                  "Payable": 3350000
                },
                "SaleInfo": {
                  "BaseFare": 3517500,
                  "Tax": 0,
                  "TotalFare": 3517500,
                  "CommisionPercent": 0,
                  "CalculatedAmountOfCommisionPercent": 0,
                  "CommisionValue": 0,
                  "Discount": 0,
                  "Surcharge": 0,
                  "Payable": 3517500
                },
                "FreeBaggage": {
                  "CheckedBaggageQuantity": 0,
                  "CheckedBaggageTotalWeight": 0,
                  "HandBaggageQuantity": 0,
                  "HandBaggageTotalWeight": 0
                }
              }
            ]
          }
        ],
        "DepartureFlightDetail": [
          {
            "Charter": null,
            "Webservice": {
              "FlightNumber": "958",
              "FlightDate": "2021-05-01 12:00",
              "DurationInMinute": 0,
              "OriginIataCode": "TBZ",
              "DestinationIataCode": "THR",
              "BookingCode": "Y",
              "FareName": "AC11",
              "SupplierId": 5,
              "AirlineIataCode": "EP"
            }
          }
        ],
        "ReturningFlightDetail": null,
        "Payment": {
          "PaymentTypeId": 3,
          "SettlePaymentDatetime": "2021-05-01 05:42:16",
          "UserReturningFromIpgDateTime": "2021-05-01 05:42:16",
          "Ansar": null,
          "Gardeshgari": null,
          "Mellat": null,
          "Parsian": null,
          "Pasargad": {
            "InvoiceNumber": 212959,
            "TransactionReferenceId": "1234567890",
            "TraceNumber": "516180",
            "ReferenceNumber": "141185357766"
          },
          "Saman": null
        },
        "Utm": null,
        "AyaMogheForoshFareTarkibShode": false,
        "PnrSystemDakheliAgance": null
      }
    },
    {
      "Id": 24666,
      "Type": "FederatedFlight.FlightBookedV2",
      "CreateDateTime": "2021-05-02 12:13:42",
      "Data": {
        "Pnr": "J35Y86",
        "SerialNumber": 212962,
        "Phone": "+989221101261",
        "Email": "sepehr.vahid.qozatlou@gmail.com",
        // ... بیشتر فیلدها مشابه رویداد قبلی
      }
    },
    {
      "Id": 24644,
      "Type": "FederatedHotel.HotelBookedV1",
      "CreateDateTime": "2021-05-02 08:55:51",
      "Data": {
        "Pnr": "MD8J46",
        "SerialNumber": 212960,
        // ... بیشتر فیلدها مربوط به هتل
      }
    },
    {
      "Id": 24653,
      "Type": "TourBundle.TourBundleBookedV2",
      "CreateDateTime": "2021-05-02 09:47:24",
      "Data": {
        "Pnr": "V28TOV",
        "SerialNumber": 212961,
        // ... بیشتر فیلدها مربوط به تور
      }
    }
  ]
}