- [版本紀錄](#版本紀錄)
- [文件說明](#文件說明)
- [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>