Skip to content

Member Login

Description

會員登入中介 API。依商家之 siteinfo.member_source 自動分流處理,統一格式化為標準會員登入資料結構(Ocard 格式)回傳: - member_source = 2 (Ocard):轉發至 Ocard 用戶登入流程,回傳標準登入結構。 - member_source = 5 (Wixtar 會員):轉發至星益欣會員中心查詢會員資料 (GET /v1/member/wixtar/profile),並將會員資料格式化為標準登入結構(包含 user、vip、point_card、coupon_list)回傳。 - 會員狀態檢核 (Wixtar):若會員狀態非正常(member_status != '0',如停權 '1'、註銷 '2' 或其他異常狀態),中介 API 統一阻擋並回傳 HTTP 403 Forbidden。 - 查無會員 (Wixtar):若 Wixtar 回傳查無會員(code = "404" 或 data = null),中介 API 統一轉為 HTTP 404 回傳。 - 目前限定僅支援 Ocard 與 Wixtar 會員。

Resource

POST /v1/user/member/login

Authorization

採用 OAuth 2.0 Bearer Token,詳細使用流程請參考 Auth Login。

Request Body Parameters

Name Type Description
store_id string 門市代碼
phone_number string 用戶註冊手機號碼(optional) (與 qrcode 至少擇一;Ocard 渠道必填)
qrcode string 動態會員 QRCode 掃碼字串(optional) (Wixtar 會員專用;若兩者皆有帶,Wixtar 查詢優先採用 qrcode)

Response Parameters

Name Type Description
user User Object 用戶基本資料
vip Vip Object VIP 等級與權益資訊
point_card Point Card Object 集點卡與點數資訊,若店家未啟用集點卡或無資料則為 null
coupon_list Coupon Object[] 可用優惠券清單

Response Parameters - User Object

Name Type Description
id string 會員編號 / 用戶 ID(Wixtar 對應 vip_id,Ocard 對應用戶 ID)
name string 會員姓名
cell string 會員註冊手機號碼
email string 電子郵件信箱,若無設定則為 null
birth string 生日(格式如 YYYY-MM-DD),若無則為 null
sex string 性別代碼(1=男, 2=女, 0=其他),若無則為 0
head_image string 會員頭像網址,若無則為 null
token string 平台登入 Token,若無則為 null
image_card string 卡面圖片網址,若無則為 null
accept_brand_time string 加入品牌時間,若無則為 null
vip_check string VIP 審核狀態,若無則為 null
brand_check string 品牌審核狀態,若無則為 null
accept_vip_time string 加入 VIP 時間,若無則為 null
vip_name string VIP 等級名稱,若無則為 null
visited_count string 到訪次數(預設為 "0")

Response Parameters - Vip Object

Name Type Description
id string 等級編號(Wixtar 依當前品牌 company_id 比對 brand_vip_groups 之 vip_group_id,Ocard 對應 VIP ID),若無則為 null
level string VIP 等級序號(預設為 "1"),若無等級則為 null
name string VIP 等級名稱(Wixtar 依當前品牌 company_id 比對 brand_vip_groups 之 vip_group_name,Ocard 對應 vip.name),若無等級則為 null
goods string 升級贈品,若無則為 null
condition string 升級條件,若無則為 null
pos_code string POS 串接代碼(Wixtar 對應 vip_group_id,Ocard 對應 pos_code),若無則為 null
vip_check string VIP 檢查狀態,若無則為 null
brand_check string 品牌檢查狀態,若無則為 null

Response Parameters - Point Card Object

Name Type Description
point string 目前會員可用累積點數
spend string 消費累積點數金額(預設為 "0")
convert string 點數兌換比例(預設為 "1")
available_gift_count string 可用贈品券數量(預設為 "0")
title string 集點卡標題名稱(Wixtar 預設為 "會員點數")
content string 集點卡內容說明(Wixtar 預設為 "會員點數")
expire Expire Object 最近即將到期點數資訊,若無即將到期點數則為 null

Response Parameters - Expire Object

Name Type Description
date string 最近一筆點數到期日(格式如 2026-12-31 或 2026-12-31 23:59:59)
point integer 即將到期之點數額度

Response Parameters - Coupon Object

Name Type Description
id string 票券號碼 / 優惠券 ID(Wixtar 對應 tk_no,Ocard 對應券 ID)
title string 票券名稱 / 優惠券標題(Wixtar 對應 prod_name 或 description)
redeemable boolean 是否可核銷(固定為 true)
start_time string 票券有效起日(格式如 2026-01-01 00:00:00)
end_time string 票券有效迄日(格式如 2026-12-31 23:59:59)
image string 票券圖片網址,若無則為 null
pos_code string POS 促銷代碼/商品代碼(Wixtar 對應票券之 prod_id,Ocard 對應 pos_code,若無則為 null)

Request Example - 手機號碼登入 (Ocard / Wixtar 通用)

{
    "store_id": "000030",
    "phone_number": "0963023268"
}

Request Example - QRCode 掃碼登入 (Wixtar 會員專用)

{
    "store_id": "000030",
    "qrcode": "WIX_MEMBER_QRCODE_STRING_20260930"
}

Response Example (Http Code = 200)

{
    "user": {
        "cell": "0963023268",
        "name": "王大明",
        "birth": "1990-01-15",
        "sex": "1",
        "head_image": null,
        "token": null,
        "id": "CM00000108",
        "image_card": null,
        "accept_brand_time": null,
        "vip_check": null,
        "brand_check": null,
        "accept_vip_time": null,
        "vip_name": "金卡",
        "visited_count": "0"
    },
    "vip": {
        "id": "GOLD",
        "level": "1",
        "name": "金卡",
        "goods": null,
        "condition": null,
        "pos_code": "GOLD",
        "vip_check": null,
        "brand_check": null
    },
    "point_card": {
        "point": "120",
        "spend": "0",
        "convert": "1",
        "available_gift_count": "0",
        "title": "會員點數",
        "content": "會員點數",
        "expire": {
            "date": "2026-12-31 23:59:59",
            "point": 120
        }
    },
    "coupon_list": [
        {
            "id": "TK00000001",
            "title": "春節折扣券商品",
            "redeemable": true,
            "start_time": "2026-01-01 00:00:00",
            "end_time": "2026-12-31 23:59:59",
            "image": null,
            "pos_code": "PROD0001"
        }
    ]
}

Error Response Example - 會員狀態異常/停權/註銷 (Http Code = 403)

{
    "message": "會員帳號已停權或凍結,無法登入"
}

Error Response Example - 查無會員 (Http Code = 404)

{
    "message": "Wixtar查無對應會員 0963023268"
}

Error Response Example - 不支援的會員來源 (Http Code = 400)

{
    "code": "UWX0003",
    "message": "目前會員登入中介 API 僅支援 Ocard 或 Wixtar 會員"
}