---
# System prepended metadata

title: 直播大賽API
tags: [串接]

---

- [版本紀錄](#版本紀錄)
- [文件說明](#文件說明)
- [API使用說明](#API使用說明)
## 版本紀錄

| 版本 |   說明   |    日期    |
|:----:|:--------:|:----------:|
|  V1  | 初版建立 | 2023-08-21 |
|  V1.1  | 新增註冊推薦人欄位 | 2023-08-28 |

### 文件說明

此文件為團霸兔官網與直播大賽官網串接文件

* [團霸兔會員驗證](#團霸兔會員驗證)
* [取得會員下線總數](#取得會員下線總數)
* [取得會員下線訂單](#取得會員下線訂單)

### API使用說明
#### 使用限制

- 因資安考量，需要特定IP才能存取此頁面。

#### 使用說明

- 主要網址
    ```
    https://api.mr22.com.tw/{path}
    ```
- token

    於信件中提供

---

#### 團霸兔會員驗證
* [Request](#request_1)
* [Response](#response_1)

:::info
透過LINE uuid確認團霸兔是否有已存在的會員，如果沒有則自動新增一個會員，並返回當前會員相關資料，若會員已存在則直接返回此會員資料。
:::

<div class='title' id='request_1'>Request</div><br/>

<table>
    <tr>
        <td>method</td>
        <td>POST</td>
    </tr>
    <tr>
        <td>path</td>
        <td>/member</td>
    </tr>
</table>

- header

    <table>
        <tr>
            <td>Content-Type</td>
            <td>Application/json</td>
        </tr>
        <tr>
            <td>token</td>
            <td>{token}</td>
        </tr>

    </table>
- body

    | 名稱 | 型態 | 說明 | 備註 |
    | -------- | -------- | -------- | -------- |
    | api_service | String | 服務代號 | <span class='point'>請填寫 memberSSO</span> |
    | card_no | String | 會員卡號 | <span class='point'>請填寫 membersso</span> |
    | api_info | Object | 請參考下方api_info說明 |

- api_info

    | 名稱 | 型態 | 說明 | 備註 |
    | -------- | -------- | -------- | -------- |
    | social_type | String | 社群類型 |line
    | social_id | String | 社群 uuid |
    | social_name | String | 使用者名稱 | 會員註冊用 |
    | social_email | String | 使用者信箱 | 會員註冊用 |
    | social_photo | String | 使用者大頭貼 | 會員註冊用 |
    | member_referrer_card_no | String | 推薦人卡號 | 會員註冊用 |
    
- 範例
    ```json=
    {
        "api_service": "memberSSO",
        "card_no": "membersso",
        "api_info": {
            "social_type": "line",
            "social_id": "U89be43d507fe22685d79fabdc9228700",
            "social_name": "matrixec",
            "social_email": "email@matrixec.com",
            "social_photo": "photo_url"
            "member_referrer_card_no": "A1234567"
        }
    }
    ```


<div class='title' id='response_1'>Response</div><br/>

- body

    | 名稱 | 型態 | 說明 | 備註 |
    | -------- | -------- | -------- | -------- |
    | api_service | String | 服務代號 |
    | card_no | String | 會員卡號 |
    | status | String | API狀態| S 代表成功，F 代表失敗|
    | status_code | String | [狀態碼](#member_status) |
    | message | String | 回覆訊息|
    | result | Object | 參考下方result說明 |

- result

    | 名稱 | 型態 | 說明 | 備註 |
    | -------- | -------- | -------- | -------- |
    | name | String | 會員姓名 |
    | nickname | String | 暱稱（社群軟體名稱） |
    | email | String | 信箱 |
    | sex | String | 性別 | 男生 male / 女生 female  |
    | member_level | String | 會員等級名稱|
    | birthday | String | 生日 | 格式 yyyy-mm-dd |
    | address | String | 地址 |
    | photo | String | 社群頭像網址 |
    | total_profit | number | 會員點數 |

- 範例

    ``` json=
    {
        "api_service": "memberSSO",
        "card_no": "A1234567",
        "status": "S",
        "status_code": "0000",
        "message": "SUCCESS",
        "result": {
            "email": "email@matrixec.com",
            "member_level": "M2官方團購主",
            "name": "matrixec",
            "nickname": "matrixec_line",
            "sex": "male",
            "birthday": "2013-03-01",
            "address": "台北市信義區...",
            "photo": "https://profile.line-scdn.net/...",
            "total_profit": 142265
        }
    }
    ```
- <span id='member_status'>狀態碼</span>

    | 代碼 | 說明 |
    | ---- | ---- |
    | 0000  | 成功 |
    | M0001  | 錯誤的HTTP請求方式 |
    | M0002  | 授權失敗 |
    | M0003  | 參數錯誤 |
    | M0004  | 授權失敗 |


---

#### 取得會員下線總數
* [Request](#request_2)
* [Response](#response_2)

:::info
利用會員卡號取得會員下線總數。
:::

<div class='title' id='request_2'>Request</div><br/>

<table>
    <tr>
        <td>method</td>
        <td>GET</td>
    </tr>
    <tr>
        <td>path</td>
        <td>/members</td>
    </tr>
</table>

- header

    <table>
        <tr>
            <td>Content-Type</td>
            <td>Application/json</td>
        </tr>
        <tr>
            <td>token</td>
            <td>{token}</td>
        </tr>

    </table>
    
- param

    | 名稱 | 型態 | 說明 | 備註 |
    | -------- | -------- | -------- | -------- |
    | mode | string | API模式 | 請填寫 get_total_sub_member
    | card_no_list | string | 會員卡號 | 用逗號將卡號串在一起並使用URL encode

- 範例

    ```
    https://api.mr22.com.tw/members
    ?mode=get_total_sub_member&card_no_list=A1234567%2CB1234567%2CC1234567%0A
    ```
    
<div class='title' id='response_2'>Response</div><br/>

- body

    | 名稱 | 型態 | 說明 |
    | -------- | -------- | -------- |
    | status | String | 請參考下方[狀態碼](#members_status) |
    | res_data | Object | 回覆資料 |
    | res_data.card_no | String | 會員卡號|
    | res_data.card_no.level | Object | 每層的下線總數|
    | res_data.card_no.total | Number | 全部的下線總數|


- 範例
    ``` json=
    {
        "status": "000",
        "message": "success",
        "res_data": {
            "wilson_line": {
                "level": {
                    "1": 17,
                    "2": 8
                },
                "total": 25
            }
        }
    }
    ```

- <span id='members_status'>狀態碼</span>

    | 代碼 | 說明 |
    | ---- | ---- |
    | 000  | 成功 |
    | 101  | 錯誤的HTTP請求方式 |
    | 102  | 授權失敗 |
    | 103  | 參數錯誤 |

---

#### 取得會員下線訂單
* [Request](#request_3)
* [Response](#response_3)

:::info
利用會員卡號取得會員所有下線訂單資訊，以及訂單商品金額明細。
:::
    
<div class='title' id='request_3'>Request</div><br/>

<table>
    <tr>
        <td>method</td>
        <td>GET</td>
    </tr>
    <tr>
        <td>path</td>
        <td>/order_m2</td>
    </tr>
</table>

- header

    <table>
        <tr>
            <td>Content-Type</td>
            <td>Application/json</td>
        </tr>
        <tr>
            <td>token</td>
            <td>{token}</td>
        </tr>

    </table>
    
- param

    | 名稱 | 型態 | 說明 | 備註 |
    | -------- | -------- | -------- | -------- |
    | mode | string | API模式 | 請填寫 get_member_m2_order
    | card_no_list | string | 會員卡號 | A1234567,B1234567,C1234567...
    | start_day | string | 起始訂購日期 | 日期範例：2023-01-01
    | end_day | string | 截止訂購日期 | 日期範例：2023-01-31

- 範例

    ```
    https://api.mr22.com.tw/order_m2
    ?mode=get_member_m2_order&card_no_list=A1234567,B1234567,C1234567&start_day=2023-01-01&end_day=2023-01-31
    ```
    
<div class='title' id='response_3'>Response</div><br/>

- body

    | 名稱 | 型態 | 說明 |
    | -------- | -------- | -------- |
    | status | String | [狀態碼](#get_member_m2_order_status) |
    | message | String | 成功訊息 |
    | res_data | Array | 回覆資料 |
    | res_data.card_no             | String |會員卡號|
    | res_data.card_no.order_list  | Array |訂單資料|
    | res_data.card_no.order_list.sn | Integer |訂單流水號|
    | res_data.card_no.order_list.order_no | String |訂單編號|
    | res_data.card_no.order_list.order_day | String |訂購日期|
    | res_data.card_no.order_list.order_date | String |訂購日期時間|
    | res_data.card_no.order_list.member_sn | String |會員流水號|
    | res_data.card_no.order_list.total_price | Integer |訂單總金額|
    | res_data.card_no.order_list.status | String |[訂單狀態](#order_status)|
    | res_data.card_no.order_list.datail | Array |訂單明細資料|
    | res_data.card_no.order_list.datail.order_detail_sn | Integer |訂單明細流水號|
    | res_data.card_no.order_list.datail.product_sn | Integer |商品流水號|
    | res_data.card_no.order_list.datail.product_no | String |商品編號|
    | res_data.card_no.order_list.datail.product_name | String |商品名稱|
    | res_data.card_no.order_list.datail.standard_sn | Integer |規格流水號|
    | res_data.card_no.order_list.datail.standard_no | String |規格編號|
    | res_data.card_no.order_list.datail.standard_name | String |規格名稱|
    | res_data.card_no.order_list.datail.quantity | Integer |訂購數量|
    | res_data.card_no.order_list.datail.price | Integer |商品金額|


- 範例
    ``` json=
    {
        "status": "000",
        "message": "success",
        "res_data": {
            "wilson_line": {
                "order_list": [
                    {
                        "sn": 12345,
                        "order_no": "D3080347712",
                        "order_day": "2023-08-03",
                        "order_date": "2023-08-0317: 37: 54",
                        "member_sn": 41954,
                        "total_price": 2000,
                        "status": "5",
                        "datail": [
                            {
                                "order_detail_sn": 23456,
                                "product_sn": 19716,
                                "product_type": 1,
                                "product_no": "0602",
                                "product_name": "\u6c34\u679c\u67f3\u4e01",
                                "standard_sn": 19867,
                                "standard_no": "0605001",
                                "standard_name": "\u516d\u9846",
                                "quantity": 5,
                                "price": 2000
                            }
                        ]
                    }
                ]
            }
        }
    }
    ```
- <span id='get_member_m2_order_status'>API狀態碼</span>

    | 代碼 | 說明 |
    | ---- | ---- |
    | 000  | 成功 |
    | 101  | 錯誤的HTTP請求方式 |
    | 102  | 授權失敗 |
    | 103  | 參數錯誤 |

- <span id='order_status'>訂單狀態碼</span>

    | 代碼 | 說明 |
    | ---- | ---- |
    | 1  | 未付款 |
    | 2  | 付款失敗 |
    | 3  | 付款完成 |
    | 4  | 再次出貨 |
    | 5  | 出貨完畢 |
    | 8  | 申請退貨 |
    | 9  | 申請退款 |
    | 11  | 訂購結單 |

---


    
    
<!-- 樣式 -->

<style>
    .title {
        font-weight: 900;
    }
    .point {
        color: red;    
    }
</style>