[关闭]
@a5635268 2018-12-10T13:52:16.000000Z 字数 7130 阅读 1406

人头马项目

接口文档


更新记录

打钩的代表全部完成

需求原文

图片.png-60.6kB

优化建议

安全层面

  1. 增加基于JWT的验证,所有明文传送uid,更改为token;所有要传uid的接口由原来的get请求,变成post请求。 否则会造成uid暴露在外被随意篡改,比如小张可以帮小王下单或者退款。
  2. 所有前端传过来的参数必须经过验证,才能写进数据库,防止sql注入;
  3. 短信部分要增加后端验证。否则,一个脚本几分钟的时间就可以刷空验证码额度;
  4. 其他安全层面建议,服务器层面一定不要随意暴露3306,6379等端口。root密码要定期更换,日常要做好数据库备份,最好每日的数据都备份到其他主机(这个由脚本完成)。否则服务器被黑,以上三条白做,这块由服务器管理人员处理。

架构和数据层面

  1. 绝大数表都没有添加时间,修改时间,操作人这三大项。比如商品表,什么时间添加的商品,什么时候修改了商品,什么人操作的。数据不具有可追溯性。
  2. 关键业务出问题,无日志可查。应该在下单,申请退款,操作退款,关闭订单,支付,订单状态更改等关键地方增加日志。出问题可查日志。

业务层面

  1. 所有列表的默认排序,应该是最新的数据排在最前面。比如,前端的收货地址,订单列表。后端的商品,评论等等;
  2. 前端的关键业务要增加二次确认,以防客户不小心误碰;比如,取消退款,确认收货等。

前端层面

本项由前端管理人员提出。据我所知,一些页面根本没有对齐,细节部分太差,比如收货地址;

上线以及测试计划

测试

  1. 提供要测试的微信号;
  2. 开发人员提供小程序测试码
  3. 测试人员扫描测试码,点击右上方三个点点,打开调试模式
    微信图片_20181210134530.png-1126.9kB
    微信图片_20181210134538.png-1679.1kB
    4. 后台测试地址 http://rtmtest.chamshare.cn/

测试环境不需要支付,点击购买就是支付状态,问题部分请先汇总;

上线

  1. 提供上线主机的root账号和密码
  2. 上线结束后完整过一遍流程。

其中支付可能会出点问题,要在线调一下,时间不会太久。所以,此处可能需要微信商户的账号密码去设置一下回调地址。



安全层面加固的接口

首页

更改前(get):

http://rtmtest.chamshare.cn/index.php/shop/index/index?uid=2

更改后(get):

http://rtmtest.chamshare.cn/index.php/shop/index/index?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOiJOT1ciLCJuYmYiOiJOT1ciLCJleHAiOjg2NDAwLCJkYXRhIjpbMTc2XX0.6YgEhmzqaPeUOsqqvUvi-n0E3Axakr2wTnbmkND0oM8

token非必传,但登录状态下,一定要传;

隐式登录 send_code

更改前(get):

http://rtmtest.chamshare.cn/index.php/shop/login/send_code?code=071Cql992bVSTK0FWY892obk992Cql9Z&user_pid=undefined&spwpid=

更改后

该接口原来会返回一个uid,现在改为返回一个token。后面凡是需要传uid的,全部改为传token,如果后端返回411就代表需要重新登录, 另外不要让 user_pidundefined 来后端。
token 默认24小时就过期,前端别永久存储;

手机发送验证码

更改前(get):

http://rtmtest.chamshare.cn/index.php/shop/login/send_code_by_phone?phone=18221995891
{"code":505653}

更改后(post)

http://rtmtest.chamshare.cn/index.php/shop/login/send_code_by_phone?phone=18221995891
{"code": 200,"msg" : "调用成功"} //验证码只有接收手机者才能看到。原来竟然直接返回了!!!!????

绑定手机号

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/Login/bind_phone?userId=248&userPhone=18221995891

更改后(post,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/Login/bind_phone

我的

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/login/user_detail?uid=248

更改后(post,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/login/user_detail

授权登录

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/login/access_user?uid=248&avatarUrl=https%3A%2F%2Fwx.qlogo.cn%2Fmmopen%2Fvi_32%2FQ0j4TwGTfTJr40p9mneO5HJictuLe8WvXxMyeuRLoOfjHL9jphFSWkKrtgfuRooSgCcoxCdJqz61hj5GFwz8icOg%2F132&gender=1&nickName=%E8%8F%9C%E9%97%AE&province=Shanghai

更改后(post,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/login/access_user

本地手机一键登录

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/login/get_phone_bind

更改后(post,uid变成token)

发送验证码

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/login/send_phone_code

更改后(post,增加token参数)

商品评论列表

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/deal/comment?cid=22&uid=248

更改后(get,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/deal/comment?cid=22&token=tokentokentokentoken

加入购物车

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/cart/add_cart?dealNum=1&uid=248&dealId=20

更改后(post,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/cart/add_cart

购物车列表

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/cart/cart_list?uid=248

更改后(get,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/cart/cart_list?token=tokentokentokentokentoken

删除购物车

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/cart/del_cart?uid=248&cart_id=60

更改后(post,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/cart/del_cart

用户点赞

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/deal/click_zan?uid=248&cid=16

更改后(post,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/deal/click_zan

发布商品评论

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/deal/add_comment?uid=248&deal_id=16&com_id=1

更改后(post,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/deal/add_comment

确认订单页面

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/order/index?uid=248&info=22%2C1

更改后(post,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/order/index

收货地址列表

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/user/address_list?uid=248

更改后(get,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/user/address_list?token=tokentokentokentokentoken

删除收货地址

更改后(get,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/user/del_address?token=tokentokentokentokentoken

添加收货地址

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/user/add_address?uid=248&address=%E8%AF%A6%E7%BB%86%E5%9C%B0%E5%9D%80%E8%AF%A6%E7%BB%86%E5%9C%B0%E5%9D%80&name=%E5%91%A8%E5%AD%9D%E5%88%9A&phone=18221995891&zip=551200&label=%E6%A0%87%E7%AD%BE&province_name=%E8%B4%B5%E5%B7%9E&province=8&city=111&city_name=%E8%B4%B5%E9%98%B3&district_name=%E5%8D%97%E6%98%8E%E5%8C%BA&district=962&price=8

更改后(post,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/user/add_address

提交订单

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/order/set_order?uid=248&address_id=102&info=22%2C1&invoice=&discount_id=&memo=&freight=8

更改后(post,uid变成token)

http://rtmtest.chamshare.cn/index.php/shop/order/set_order

交易记录

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/user/user_order_list?uid=248

更改后(get,uid变成token)

 http://rtmtest.chamshare.cn/index.php/shop/user/user_order_list?token=tokentokentoken

交易详情

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/order/order_detail?id=89

更改后(get,增加token参数,自己的订单只能自己看)

http://rtmtest.chamshare.cn/index.php/shop/order/order_detail?id=89&token=tokentokentokentoken

确认收货

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/order/comfirm?id=89

更改后(get,增加token参数,自己的订单只能自己收货)

http://rtmtest.chamshare.cn/index.php/shop/order/comfirm?id=89&token=tokentokentokentoken

申请退款

更改前(get)

http://rtmtest.chamshare.cn/index.php/shop/order/refund?orderId=89&uid=222

更改后(get,增加token参数,自己的订单只能自己收货)

http://rtmtest.chamshare.cn/index.php/shop/order/refund?orderId=89&token=tokentokentokentoken

添加发票

发票地址信息

修改发票信息

个人中心我的发票

删除发票

积分兑换

成为推客??

个人中心我的发票详情

修改意见中包含的接口

新增地址

api(改)

http://rtmtest.chamshare.cn/shop/user/add_address

params

  1. {
  2. "province_name": "省名称", 原来的city字段
  3. "province": 8, // 省id , 原来的city_id字段
  4. "city_name": "城市名称",
  5. "city" : 2, // 市id
  6. "district" : 5, // 区id
  7. "district_name": "区名称"
  8. // 其他字段和以前一样
  9. }

更新地址

api(改)

http://rtmtest.chamshare.cn/shop/user/update_address

params

  1. {
  2. "id" : "地址id",
  3. "province_name": "省名称", 原来的city字段
  4. "province": 8, // 省id , 原来的city_id字段
  5. "city_name": "城市名称",
  6. "city" : 2, // 市id
  7. "district" : 5, // 区id
  8. "district_name": "区名称"
  9. // 其他字段和以前一样
  10. }

获取省市区

api(改)

http://rtmtest.chamshare.cn/shop/user/get_city

params

  1. {
  2. "pid" : 1, // 默认是1,拿省的。其他根据省id去获取
  3. }

注意:关于收货地址,在编辑时和列表也要把新增的市区信息带进去

判断是否填快递单号

api(原)

http://rtmtest.chamshare.cn/index.php/shop/order/order_detail

如果is_refund 等于 0 并且 status 等于 1 时 不用填快递单
如果is_refund 等于 0 并且 status 等于 2 时 要填快递单

增加取消退款按钮

api(原)

http://rtmtest.chamshare.cn/index.php/shop/order/order_detail

根据字段status 等于 1 并且 is_refund 等于 1 增加取消退款按钮

取消退款

api(新)

http://rtmtest.chamshare.cn/index.php/shop/order/cancel

params

  1. {
  2. "uid" : 1, // 用户id ; 尼玛,所有接口都是这样传,而不是传token。我也很无奈
  3. "order_id" : 72 // 拿订单页的id
  4. }

success

  1. {
  2. "code": 200,
  3. "msg": "操作成功"
  4. }

error

  1. {
  2. "code": 400,
  3. "msg": "已被取消"
  4. }
  5. {
  6. "code": 400,
  7. "msg": "已发货,不能取消"
  8. }
  9. {
  10. "code": 400,
  11. "msg": "该订单已关闭,不能操作"
  12. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注