多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
文档: 在线会员当前开放接口.md 链接:http://note.youdao.com/noteshare?id=5d2e0f7e7d86aac1e985338572a03c64 # 第三方接入线上会员接口 ## [](https://note.youdao.com/md/preview.html?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FF3F0826A106742DFA2ECA63860883D12%3Fmethod%3Ddownload%26read%3Dtrue%26shareKey%3D5d2e0f7e7d86aac1e985338572a03c64#%E5%9F%BA%E6%9C%AC%E6%A0%BC%E5%BC%8F%E8%AF%B4%E6%98%8E)基本格式说明 1,所有请求都会带上一个`token`,用于身份验证,`token`由双方系统约定,每个第三方接入商都会有不同的token表明身份,每次请求时,将token放到请求头的AUTHORIZATION属性,当前token默认使用代理商系统登录名称 2,每个餐厅都有一个餐厅ID,新建会员系统时生成,不可更改,请求需要把此餐厅ID放到请求头的CUSTOMERGUID属性以对该餐厅做操作 3,所有POST请求参数为json格式 测试服务器host:[http://vip.sandyvip.com](http://vip.sandyvip.com/) 上线需要换正式服务器host:[http://vip.sandypos.com](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`\- 内部错误 ## [](https://note.youdao.com/md/preview.html?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FF3F0826A106742DFA2ECA63860883D12%3Fmethod%3Ddownload%26read%3Dtrue%26shareKey%3D5d2e0f7e7d86aac1e985338572a03c64#%E5%85%AC%E5%85%B1%E8%AF%B7%E6%B1%82)公共请求 ### [](https://note.youdao.com/md/preview.html?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FF3F0826A106742DFA2ECA63860883D12%3Fmethod%3Ddownload%26read%3Dtrue%26shareKey%3D5d2e0f7e7d86aac1e985338572a03c64#%E8%8E%B7%E5%8F%96%E5%8D%A1%E7%AD%89%E7%BA%A7)获取卡等级 `GET /api2/member-cjb/cardlevellist` 成功返回数据结构 ~~~ [{ "card_lel_name": "普通会员", "id": 1 }, { "card_lel_name": "高级会员", "id": 2 }] ~~~ 字段解释: * id - 卡等级ID * card\_lel\_name - 卡等级名称 ### [](https://note.youdao.com/md/preview.html?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FF3F0826A106742DFA2ECA63860883D12%3Fmethod%3Ddownload%26read%3Dtrue%26shareKey%3D5d2e0f7e7d86aac1e985338572a03c64#%E8%8E%B7%E5%8F%96%E5%85%85%E5%80%BC%E8%A7%84%E6%A0%BC%E5%85%85%E5%80%BC%E6%96%B9%E5%BC%8F)获取充值规格&充值方式 `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 - 可选支付方式 ### [](https://note.youdao.com/md/preview.html?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FF3F0826A106742DFA2ECA63860883D12%3Fmethod%3Ddownload%26read%3Dtrue%26shareKey%3D5d2e0f7e7d86aac1e985338572a03c64#%E6%A0%B9%E6%8D%AE%E5%85%B3%E9%94%AE%E5%AD%97%E6%9F%A5%E8%AF%A2%E4%BC%9A%E5%91%98%E5%88%97%E8%A1%A8)根据关键字查询会员列表 `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 - 卡号 ## [](https://note.youdao.com/md/preview.html?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FF3F0826A106742DFA2ECA63860883D12%3Fmethod%3Ddownload%26read%3Dtrue%26shareKey%3D5d2e0f7e7d86aac1e985338572a03c64#1-%E5%BC%80%E5%8D%A1)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 -当前积分 ## [](https://note.youdao.com/md/preview.html?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FF3F0826A106742DFA2ECA63860883D12%3Fmethod%3Ddownload%26read%3Dtrue%26shareKey%3D5d2e0f7e7d86aac1e985338572a03c64#2-%E5%85%85%E5%80%BC)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 - 赠送积分 ## [](https://note.youdao.com/md/preview.html?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FF3F0826A106742DFA2ECA63860883D12%3Fmethod%3Ddownload%26read%3Dtrue%26shareKey%3D5d2e0f7e7d86aac1e985338572a03c64#3-%E6%B6%88%E8%B4%B9)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 - 应付款项(某些场景下,余额不足时出现) ## [](https://note.youdao.com/md/preview.html?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FF3F0826A106742DFA2ECA63860883D12%3Fmethod%3Ddownload%26read%3Dtrue%26shareKey%3D5d2e0f7e7d86aac1e985338572a03c64#4-%E8%8E%B7%E5%8F%96%E4%BC%9A%E5%91%98%E4%BF%A1%E6%81%AF)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 - 累计充值金额 ## [](https://note.youdao.com/md/preview.html?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FF3F0826A106742DFA2ECA63860883D12%3Fmethod%3Ddownload%26read%3Dtrue%26shareKey%3D5d2e0f7e7d86aac1e985338572a03c64#5-%E4%BF%AE%E6%94%B9%E4%BC%9A%E5%91%98%E4%BF%A1%E6%81%AF)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 - 卡号 ## [](https://note.youdao.com/md/preview.html?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FF3F0826A106742DFA2ECA63860883D12%3Fmethod%3Ddownload%26read%3Dtrue%26shareKey%3D5d2e0f7e7d86aac1e985338572a03c64#6-%E6%9F%A5%E8%AF%A2%E4%BD%BF%E7%94%A8%E5%8E%86%E5%8F%B2)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值 ## [](https://note.youdao.com/md/preview.html?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FF3F0826A106742DFA2ECA63860883D12%3Fmethod%3Ddownload%26read%3Dtrue%26shareKey%3D5d2e0f7e7d86aac1e985338572a03c64#7-%E6%B6%88%E8%B4%B9%E7%A7%AF%E5%88%86)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 - 当前余额