郵輪B2C P3 選擇房號(QueryCabin)

API Content

說明

P3 卡片按〔選擇〕時打這支,回這張卡片的艙型還能選的房號,依樓層分組、帶平面圖,保證艙放最後。只查不寫:客人選了哪個房號由前端記下,按〔下一步:填寫旅客資料〕時才一起送出。

使用重點:

文件版本:v1.0(未交付)

規格調整

日期版本調整內容
2026/11/11v1.0(未交付)初版

Request Schema

Body

名稱描述屬性範例
Page_Id必填。QueryCategory 回的 Page_IdString6f1e2d3c-4b5a-4c7d-8e9f-0a1b2c3d4e5f
Room_Seq必填。第幾間(QueryCategory Room_List 的 Room_Seq)Int1
Category_Id必填。這張卡片的 Category_Id;要是這間最近一次 QueryCategory 回過的卡片Int6009

JSON 範例

{
  "Page_Id": "6f1e2d3c-4b5a-4c7d-8e9f-0a1b2c3d4e5f",
  "Room_Seq": 1,
  "Category_Id": 6009
}

Response Schema

回應主體

名稱描述屬性範例
Result_Info結果資訊;前端先看 Is_SuccessObject參考 Result_Info
Result_Data成功時是本端點的資料;不是成功時只放該代碼要帶的資料(見「錯誤回應」),沒有就是 {}Object參考 Result_Data

Result_Info

名稱描述屬性範例
Is_Successtrue=成功;false=看 Result_CodeBooltrue
Result_Code結果代碼(四碼數字);成功是空字串;其他見「錯誤回應」String
Result_Message給客人看的訊息;成功是空字串String

Result_Data

名稱描述屬性範例
Deck_List一層一筆,樓層由低到高,保證艙放最後。空陣列=這個艙型沒有可選的房List參考 Deck_List

Deck_List

名稱描述屬性範例
Deck_Floor樓層,保證艙是 null。「甲板9樓」這類文字用它組Int9
Deck_Text樓層頁籤文字,直接顯示;保證艙是「保證艙」String9 樓
Is_Gty保證艙那一筆是 true。系統配房的卡片看有沒有這筆,決定開不開彈窗Boolfalse
Deck_Image這層的平面圖;沒有平面圖、保證艙是 null,顯示沒有平面圖的版本Object參考 Deck_Image
Cabin_List這層可選的房號,照房號排List參考 Cabin_List

Deck_Image

名稱描述屬性範例
Image_Url圖片網址Stringhttps://img.example.com/cruise/da-deck-09.jpg
Alt_Text替代文字String9 樓平面圖

Cabin_List

名稱描述屬性範例
Cabin_Number房號;保證艙是 GTY。點選後前端記下,進旅客填寫頁時送出String9203
Is_Accessible無障礙房:true 顯示輪椅圖示;「無障礙房」篩選比對這欄Booltrue

JSON 範例

{
  "Result_Info": {
    "Is_Success": true,
    "Result_Code": "",
    "Result_Message": ""
  },
  "Result_Data": {
    "Deck_List": [
      {
        "Deck_Floor": 9,
        "Deck_Text": "9 樓",
        "Is_Gty": false,
        "Deck_Image": {
          "Image_Url": "https://img.example.com/cruise/da-deck-09.jpg",
          "Alt_Text": "9 樓平面圖"
        },
        "Cabin_List": [
          {
            "Cabin_Number": "9203",
            "Is_Accessible": true
          },
          {
            "Cabin_Number": "9207",
            "Is_Accessible": false
          }
        ]
      },
      {
        "Deck_Floor": 10,
        "Deck_Text": "10 樓",
        "Is_Gty": false,
        "Deck_Image": null,
        "Cabin_List": [
          {
            "Cabin_Number": "10155",
            "Is_Accessible": true
          }
        ]
      },
      {
        "Deck_Floor": null,
        "Deck_Text": "保證艙",
        "Is_Gty": true,
        "Deck_Image": null,
        "Cabin_List": [
          {
            "Cabin_Number": "GTY",
            "Is_Accessible": false
          }
        ]
      }
    ]
  }
}

錯誤回應

200 的代碼在 Result_Info.Result_Code、訊息在 Result_Message;400、500 只回一句訊息,代碼在訊息開頭(格式「代碼|訊息」,例「4002|Start_Date 格式錯誤」)。訊息欄除了「重複訂位」與「出發日期已無法訂購,請重新選擇」已定,其他是暫定文字,UIUX 定稿後只改文字、不改代碼;N=第幾間。

HTTPResult_Code中文名稱訊息(給客人看)情境前端動作
2002001訂位資料不存在訂位資料已失效,請重新選擇Page_Id 找不到手上有行程與人數就在 P3 開「艙房/人數」燈箱重新查詢(在 P4 先回 P3);沒有就回 P2 重新選
2005003選擇已失效選擇已失效,請重新查詢Room_Seq 不是這筆訂位的房,或 Category_Id 不是這間最近一次 QueryCategory 回過的卡片重查 QueryCategory 後再選
2006005供應商無回應系統忙碌,請稍後再試查房號時供應商重試後還是沒回應顯示「系統忙碌,請稍後再試」,可以重試
2006001供應商拒絕訂位未成功,請聯絡客服查房號時供應商回錯誤(沒有名額不算錯誤,那一類不列)顯示訊息+客服導引
2006006供應商連線設定錯誤訂位系統暫時無法使用,請聯絡客服跟供應商的連線設定有誤(後端已告警)顯示訊息+客服導引
5009999系統錯誤9999|系統發生錯誤,請稍後再試系統錯誤(未預期的例外)顯示友善錯誤訊息,可以重試

測試情境/單元測試(開發前規劃)

畫面呼叫

舊版畫面

新版畫面

P3 卡片按〔選擇〕呼叫本 API → 可自選房號開「選擇房號」彈窗、系統配房開「系統配房」彈窗(APP 是底部面板)→ 按〔選擇此艙房〕(APP〔確定〕)前端記下,回 P3 選下一間 → 都選好按〔下一步:填寫旅客資料〕。雛形:UIUX 20260922 版 WEB P3-W13~W15,APP P3-A11~A14。

畫面欄位對照(WEB)

先看有甲板圖的彈窗(雛形 WEB P3-W14 ①);灰色虛線=不在本 API。沒有甲板圖、系統配房另拉細節圖。圖片可點開放大。

細節 1:沒有甲板圖(P3-W14 ②)

細節 2:系統配房(P3-W14 ③)

WEB 不顯示:Deck_Image 的 Alt_Text(圖片替代文字)。雛形還沒畫、圖上沒標:保證艙的樓層頁籤(Deck_List 最後一筆)、顯示「目前無可選樓層或房號」的畫面。

畫面欄位對照(APP)

先看有甲板圖的面板(雛形 APP P3-A11,已選房號);沒有甲板圖、篩選無障礙房、系統配房另拉細節圖。圖片可點開放大。

細節 1:沒有甲板圖(P3-A13)

細節 2:篩選無障礙房(P3-A14)

細節 3:系統配房(P3-A12)

APP 不顯示:Deck_Image 的 Alt_Text。雛形還沒畫、圖上沒標:同 WEB。