快递鸟电子面单开发文档
1 需求
对接快递鸟api,实现打印顺丰快递面单功能。
2 开发
2.1 数据库设计
2.1.1 电子面单表(es_waybill)
字段 | 类型 | 长度 | 说明 |
---|---|---|---|
id | int | 10 | Id |
bill_name | varchar | 50 | 名称 |
bill_config | varchar | 255 | 参数 |
bill_bean | varchar | 15 | 插件beanid |
2.1.2 物流公司表(es_logi_company)
新增如下字段:
字段 | 类型 | 长度 | 说明 |
---|---|---|---|
is_waybill | int | 10 | 是否支持电子面单1:支持0:不支持 |
customer_name: | varchar | 50 | 物流公司客户号 |
customer_pwd | varchar | 50 | 物流公司电子面单密码 |
2.2 架构
2.2.1 整体类图
2.2.2 包结构说明
在shop-core中开发
com.enation.app.shop.waybill.controllor
com.enation.app.shop.waybill.service
com.enation.app.shop.waybill.service.impl
com.enation.app.shop.waybill.plugin
com.enation.app.shop.waybill.model
ConfigItem类放到 javashop-core项目中
com.enation.app.base.core.model包下
2.2.3 电子面单参数设置的获取
说明:
- 浏览器通过getPlugin方法向控制器发出请求。
- 控制器调业务层代码getPlugin方法获取到电子面单的配置项,返回给控制器。
- 具体得到电子面单的配置项是通过事件实现,首先通过findPlugin来找到当前插件。然后通过definitionConfigItem方法来拼接配置项。返回配置项List<ConfigItem>,最终通过controller转为json返回浏览器。
- 实现可参照order-pay-service项目中WinXinPayPlugin中definitionConfigItem方法。
2.2.4 电子面单的创建
说明:
- 浏览器通过createPrintData方法向控制器发出请求。
- 控制器调业务层createPrintData方法来获得电子面单json。
- 业务层具体实现首先需要调getOrder方法,传入orderid来获取当前的订单信息,从订单信息中取出相关参数。
- 然后通过findPlugin方法来得到当前的插件。然后通过事件来调createPrintData方法来获取电子面单json。
- 在具体的插件实现中,首先通过getConfig方法来得到当前的电子面单公司的参数信息,拼接好所需要的参数向快递鸟接口发送请求,返回电子面单json。通过页面打印。