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
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 會員"
}