# 第三方接入線上會員接口
[TOC]
## 基本格式說明
1,所有請求都會帶上一個 `token`,用于身份驗證,`token`由雙方系統約定,每個第三方接入商都會有不同的token表明身份,每次請求時,將token放到請求頭的AUTHORIZATION屬性,當前token默認使用代理商系統登錄名稱
2,每個餐廳都有一個餐廳ID,新建會員系統時生成,不可更改,請求需要把此餐廳ID放到請求頭的CUSTOMERGUID屬性以對該餐廳做操作
3,所有POST請求參數為json格式
測試服務器host: http://vip.sandyvip.com
上線需要換正式服務器host: http://vip.sandypos.com
測試代理商登錄名:test
測試商戶ID:{DEFAULT-AUTO-8E5A-BDE2-34ABA1BD956C9}
測試商戶分店ID: {DEFAULT-AUTO-E207-8CC9-44AD86AEEB6DD}
curl示例:
```
curl -X POST -H 'CUSTOMERGUID: {DEFAULT-AUTO-8E5A-BDE2-34ABA1BD956C9}' -H 'AUTHORIZATION: test' -i 'http://vip.sandyvip.com/api2/member-cjb/getrechargerules' --data '{"card_id": "000001" }'
```
4,出錯返回數據結構:
```
{
"errcode": "", // 錯誤代碼
"errmsg": "" // 錯誤信息
}
```
`errcode`:
* `1` - 參數不足
* `2` - 卡不存在
* `3` - 卡已存在
* `4` - 余額不足
* `300` - 系統過期
* `400` - 參數錯誤
* `500` - 內部錯誤
## 公共請求
### 獲取卡等級
`GET /api2/member-cjb/cardlevellist`
成功返回數據結構
```
[{
"card_lel_name": "普通會員",
"id": 1
}, {
"card_lel_name": "高級會員",
"id": 2
}]
```
字段解釋:
* id - 卡等級ID
* card_lel_name - 卡等級名稱
### 獲取充值規格&充值方式
`POST /api2/member-cjb/getrechargerules`
請求參數
```
{
"card_id“: "000001"
}
```
字段解釋:
* card_id - 需要充值的卡號
成功返回數據結構:
```
{
"rules": [{
"money": 1,
"add_score": 0.0,
"description": "充值送10%",
"add_money": 0.1
}, {
"money": 500,
"add_score": 0.0,
"description": "沖500送100",
"add_money": 100.0
}],
"paytypes": [
[1, "現金"],
[2, "銀行卡"],
[4, "支付寶"],
[3, "微信"]
]
}
```
字段解釋:
* money - 充值金額,0為每次充值生效,1為按百分比生效
* add_score - 贈送積分
* add_money - 贈送金額
* description - 規則名稱
* paytypes - 可選支付方式
### 根據關鍵字查詢會員列表
`POST /api2/member-cjb/getcards`
請求參數
```
{
"key": "123"
}
```
字段解釋
* key - 查詢關鍵字,可以部分匹配卡號、姓名、手機號
成功返回數據結構
```
{
"cards": [{
"cur_score": 2555,
"phone": "66538536",
"amount": 14493.80,
"uname": "Chan Kan Seng",
"card_level_name": "普通卡",
"card_status": "正常",
"id": 200889,
"card_id": "M000123"
},
...
]
}
```
字段解釋
* cur_score - 當前積分
* phone - 手機號碼
* amount - 余額
* uname - 持卡者姓名
* card_level_name - 卡等級
* card_status - 卡狀態
* id - 卡id
* card_id - 卡號
## 1. 開卡
`POST /api2/member-cjb/cardopen`
請求參數
```
{
"cardID": "12345",
"cardLevelID": "1",
"uname": "Mr.Wang",
"phone": "186xxxxxxxx",
"gender": "1"
}
```
字段解釋
* cardID - 卡號
* cardLevelID - 卡等級ID
* uname - 會員姓名
* phone -會員手機
* gender - 性別 1-男,0-女
成功返回數據結構:
```
{
"org_name": "ASDFG",
"phone": "186xxxxxxxx",
"amount": 100,
"card_id": "12345",
"cur_score": 0
}
```
字段解釋
* org_name - 開卡商戶名稱
* phone - 會員手機號
* amount -當前余額
* card_id - 卡號
* cur_score -當前積分
## 2. 充值
`POST /api2/member-cjb/recharge`
請求參數
```
{
"card_id": "wx001", // 卡號
"money": "100", // 充值金額
"pay_type": 1 //充值方式
}
```
字段解釋
* card_id - 卡號
* money - 充值金額
* pay_type -充值方式,根據公共接口“獲取充值規格&充值方式”獲取
成功返回數據結構:
```
{
"cur_score": 0,
"add_money": 10.0,
"amount": "1420.00",
"add_score": 0.0,
"card_id": "12345"
}
```
字段解釋
* card_id - 卡號
* money - 充值金額
* amount - 當前余額
* add_money - 贈送金額
* add_score - 贈送積分
## 3. 消費
`POST /api2/member-cjb/consume`
請求參數
```
{
"card_id": "wx001",
"money": 100,
"money_discount": 100
}
```
字段解釋
* card_id - 卡號
* money - 消費金額
* money_discount - 可打折金額,可選。默認全部打折
成功返回數據結構:
```
{
"cur_score": 2555,
"ori_money": 100.0,
"amount": "14493.80",
"discount_money": 20.0,
"card_money": 80.0,
"discount": 0.8,
"depot_money": 0,
"card_id": "M000123",
"act_money": 80.0
}
```
字段解釋
* card_id - 卡號
* cur_score - 當前積分
* ori_money - 原始消費金額
* act_money - 實際消費金額
* amount - 當前余額
* discount - 折扣,0.8表示8折
* discount_money - 折扣金額
* card_money - 卡內扣款
* depot_money - 應付款項(某些場景下,余額不足時出現)
## 4. 獲取會員信息
`POST /api2/member-cjb/getcardinfo`
備注:此接口根據卡號精確查詢特定卡信息,如果不能確定會員卡號,先使用公共請求“根據關鍵字查詢會員列表”查找信息,以確定卡號
```
{
"card_id": "wx001"
}
```
字段解釋
* card_id - 卡號
成功返回數據結構
```
{
"cur_score": 2555,
"phone": "66538536",
"amount": 14493.80,
"birthday": "",
"uname": "Chan Kan Seng",
"gender": 0,
"card_level_name": "普通卡",
"card_id": "M000123",
"sum_consume": 1000,
"sum_recharge": 529
}
```
字段解釋
* cur_score - 當前積分
* phone - 手機號碼
* amount - 余額
* birthday - 生日,格式為YYYY-mm-dd,沒記錄時為空
* uname - 持卡者姓名,
* gender - 性別 0-女,1-男
* card_level_name - 卡等級,
* card_id - 卡號
* sum_consume - 累計消費金額
* sum_recharge - 累計充值金額
## 5. 修改會員信息
`POST /api2/member-cjb/modcardinfo`
請求參數
```
{
"card_id": "M000123",
"uname": "huang",
"phone": "1234",
"birthday": "1999-9-9",
"gender": 1
}
```
字段解釋
* card_id - 卡號,必填
* uname - 新名稱,可選,不傳該字段則不做修改
* phone - 新的手機號,可選,不傳該字段則不做修改
* birthday - 新的生日,不傳該字段則不做修改
* gender - 新的性別, 0-女,1-男,不傳該字段則不做修改
成功返回數據結構
```
{
"cur_score": 2555,
"phone": "66538536",
"amount": 14493.80,
"birthday": "",
"uname": "Chan Kan Seng",
"gender": 0,
"card_level_name": "普通卡",
"card_id": "M000123"
}
```
字段解釋
* cur_score - 當前積分
* phone - 手機號碼
* amount - 余額
* birthday - 生日,格式為YYYY-mm-dd,沒記錄時為空
* uname - 持卡者姓名,
* gender - 性別 0-女,1-男
* card_level_name - 卡等級,
* card_id - 卡號
## 6. 查詢使用歷史
`POST /api2/member-cjb/getcardhis`
請求參數
```
{
"card_id": "M000123",
"only_score_change": 1,
"start_timestamp": 1570761560,
"end_timestamp": 1570761560,
"event_type": 0,
"page_size": 20,
"page": 1
}
```
字段解釋
* card_id - 卡號,必填
* only_score_change - 可選,僅列出有積分變動的記錄1-僅列出積分變動
* start_timestamp - 可選,查詢起始時間,秒級時間戳
* end_timestamp - 可選,查詢截止時間,秒級時間戳
* page_size - 每頁顯示的條數,可選,默認值20
* page - 查詢的頁數,默認第一頁
* event_type - 記錄類型,可選,默認查詢全部,類型列表如下
event_type 值 | 類型描述
---|---
1 | 開卡
2 | 退卡
3 | 換卡
4 | 掛失
5 | 解掛
6 | 充值
7 | 消費
20 | 轉出
21 | 轉入
30 | 提現
成功返回數據結構
```
{
"data": [{
"ori_money": 100.0,
"act_money": 115.0,
"amount": 14608.8,
"score": 2560,
"pay_type_text": "現金",
"description": "充值送10%:充值100.0贈送金額10.0<br/>單次送5元:充值100.0贈送金額5.0贈送積分5.0",
"time": 1570592439,
"type": 6,
"org_name": "聚客西餐",
"id": 1003
}, {
"ori_money": 100.0,
"act_money": 80.0,
"amount": 14493.8,
"score": 2555,
"pay_type_text": "",
"description": "8折(0.8)<br/>消費80.0,獲得積分80\n",
"time": 1570592439,
"type": 7,
"org_name": "聚客西餐",
"id": 1000
}],
"pages": 30.0,
"page_size": 2,
"page": 1
}
```
字段解釋
* ori_money - 原始金額
* act_money - 實際金額
* description - 記錄描述
* org_name - 商戶名稱
* amount - 余額
* time - 時間,秒級時間戳格式
* type - 類型,見參數列表解釋
* pages - 記錄總計條數
* page_size - 每頁顯示條數
* page - 當前頁
* id - 記錄的數據庫ID值
## 7. 消費積分
`POST /api2/member-cjb/consume_score`
請求參數
```
{
"card_id": "wx001",
"score": 100
}
```
字段解釋
* card_id - 卡號
* score - 消費積分,如果有小數部分,將忽略
成功返回數據結構:
```
{
"cur_score": 2555,
"amount": 80.0,
"card_id": "M000123",
}
```
字段解釋
* card_id - 卡號
* cur_score - 當前積分
* amount - 當前余額