电商与淘宝交互系统设计说明书.docx
《电商与淘宝交互系统设计说明书.docx》由会员分享,可在线阅读,更多相关《电商与淘宝交互系统设计说明书.docx(19页珍藏版)》请在冰豆网上搜索。
电商与淘宝交互系统设计说明书
文件编号
天安对淘宝交互系统-设计说明书-V1.0.doc
天安财产保险股份有限公司
信息技术部
修订历史
生效日期
版本号
版本说明
作者
审核
批准
2014-10-14
1.0
朱毓堃
天安对淘宝交互系统设计说明书
系统设计说明书
1引言
目标
为满足保险电子商务日益发展的业务需求,通过搭建基础的对外平台,外接第三方,内接核心子系统,确保天安财险产品能够通过对外平台,实现在第三方电商平台上进行销售和服务。
范围
搭建基础交互平台,分别与淘宝和核心进行对接。
术语和缩略语
序号
术语/缩略语
全称和说明
1.
电商
电子商务
2.
第三方
淘宝、微信、铜板街等连接电商系统的其他交易平台。
3.
枚举
java枚举类(enum),能标识我们在数据库的表中数字或字母所代表的含义,并能通过含义取出数字或字母。
参考资料
1.国华人寿老版电商项目。
2.上网搜集的相关资料。
2整体说明
简介
为满足天安公司需要在淘宝店铺上销售的保险产品,在本地电商系统中添加淘宝分支,使得淘宝在支付前核保和支付后承保的时候能够调用电商系统,在承保的时候我们能够调用核心返回保单号给在淘宝上购买保险的用户。
系统目标和约束
[本节说明对构架具有某种重要影响的软件需求和目标,例如:
安全性、保密性、市售产品的使用、可移植性和重复使用。
还应记录可能适用的特殊约束:
设计与实施策略、开发工具、团队结构、时间表、遗留代码等。
说明设计系统需要考虑的问题、遵循的约束。
比如要遵循软件架构设计的要求,要遵循需求中分配到此子系统的特殊要求,要遵循统一的界面约束(如果有的话),要使用架构统一设置的数据库源,要使用架构统一设置的JAVAMAIL等]
3整体设计
3.1系统架构
1、对外交互平台分按照接入关系分为三个部分:
Ø第三方系统接入(包括:
微信等外部系统(本次需求仅包含微信渠道))
Ø对外交互平台部分(负责接口的接入接出:
对外与第三方系统对接;对内与天安内部系统进行对接,不包括天安已有的内部系统开发部分)
Ø天安内部系统(包括:
核心、电销、短信、邮件等系统,内部系统统一由ESB管理)
2、对外交互平台功能简述
Ø对外交互平台的主要任务为:
满足天安电商部门与外围电商平台对接任务,确保天安保险产品能够在电商平台上通过对外交互平台进行销售和服务功能。
3.2用例视图
3.2.1用例
3.3逻辑视图
3.3.1逻辑视图
3.2.2分层
前置分层:
各个包的注释:
ebiz:
电商中涉及与第三方连接的代码都写在这个包里。
comon:
里面有控制器基类EbizBaseController.java以及
thirdIF:
第三方的所有代码所在类。
base:
里面含有基本的控制器,有淘宝等其他分支控制器的父类,AbstTradeForHttpThird.java,能解决所有和报文读取和返回相关的操作。
constant:
常量类所在包,里面包含有各种字段的枚举值。
dto:
淘宝前置调后置所用实体以及电商与淘宝交互所用的实体所在包。
util:
淘宝核保的实体转换成后置实体所在包。
后置分层:
各个包的注释:
ebiz:
电商中涉及与第三方连接的代码都写在这个包里。
base.dao:
后置dao的通用dao实现类EbizBaseDAOImpl.java所在包。
check:
核保校验所在包。
common:
里面含有一些电商的配置文件和电商平台的通用枚举。
config:
含有电商需要用到的配置信息,和properties关联。
exception:
自定义异常类所在包。
thridIF:
涉及到第三方的类所在包。
bo:
业务对象层。
对应着各个dao
constant:
枚举类所在包。
dao:
数据访问层,由mybatis工具自动生成。
dto:
暂没用到。
esb:
承保调用esb的WebService的工具自动生成类所在包。
model:
实体所在包
proxy:
判断是否快捷核保和承保的类所在包
service:
业务逻辑层
ws:
存放各个WebService方法的包
3.2.3架构模式和设计机制
1.采用SpringMVC+Mybatis的框架开发的电商平台。
2.采用了工厂模式,抽象工厂模式,建造者模式以及单例模式等设计模式。
3.3部署视图
需有一个不会死机,重启的服务器主机来充当生产的服务器
3.4数据视图
关于品配置的数据需配置在数据库中EBIZ_PRODUCT,EBIZ_PRODUCT_PROPERTY以及EBIZ_PRODUCT_CHECKRULE表中
3.5公共平台使用
将项目部署在tomcat上启动服务器,然后进入tomcat文件夹下的webapps底下删除eservice包里lib里的servlet-api.jar和jsp-api.jar这2个jar包。
4详细设计
4.1用例实现
4.1.1用例实现列表
1.电商核保接口
2.电商承保接口
3.电商订单状态查询接口
4.1.2用例实现描述
4.1.2.1核保流程
1、对外交易平台收到淘宝平台发过来的核保请求(RequestType=01)后,对报文进行验签,验证通过后,进行数据处理。
2、在第三方交易表中保存交易报文。
THIRD_TYPE=03(淘宝),THIRD_TRADE_ID=淘宝订单号,TRADE_TYPE=10(核保);
3、在EBIZ_THIRD_ORDER中保存淘宝订单信息。
THIRD_TYPE=01(淘宝),THIRD_ORDER_NO=淘宝订单号,THIRD_USER_ID=淘宝订单映射承保交易中节点。
ORDER_NO=非车险订单表主键(详见电商产生方法)
4、保存订单数据(非车险相关表)
5、判断是否使用快捷核保(由产品配置完成)。
若为快捷核保,见快捷核保流程;若为非快捷核保,调用esb核心核保接口。
6、返回核保结果,淘宝根据核保结果对应相应逻辑处理。
7、非订单相关表
✧ebiz_main_order非车险订单表主表
✧ebiz_third_order第三方订单表
✧ebiz_appnt投保人信息表,用来存放投保人信息
✧ebiz_insured被保人信息表,用来存放被保人信息
✧ebiz_order_insurance订单险种表,用来存放投保的险种信息
✧ebiz_impart、ebiz_impart_item用来存放投保告知
8、关于访问和调用接口报文存储说明:
本系统,所有对外调用接口,对内调用接口均需要保存交易报文
外部系统调用对外交互平台,报文存储在表:
EBIZ_THIRD_TRADE
对内部esb调用,报文存储在表:
ebiz_esb_Message
后面功能点不在说明,关于枚举值,详见pdm
9、所有订单相关的更新或插入均需要保存到表EBIZ_OPER_HIS。
4.1.2.2承保流程
1、淘宝发起承保交易请求
2、对外交易平台收到承保交易请求后,在表EBIZ_THIRD_TRADE中保存淘宝承保交易信息,其中TRADE_TYPE=11(承保)
3、对外交易平台收到交易请求后,对承保交易进行再次核保,核保失败,则返回承保失败;若返回成进入承保流程。
4、保存更新第三方扩展表
5、更新各种表操作
6、创建用户流程,详细见创建用户流程
5、保存esb请求报文,其中:
trade_no=05(非车险承保接口)
6、调用esb承保接口,更新订单信息
说明:
1、核心系统在进行承保功能时,需要对承保时所传数据进行一次核保。
我方在设计承保接口时,需要将所有数据都传给核心。
2、快捷承保暂时还未设计,后续补充。
4.1.2.3订单状态查询流程
1、淘宝发起订单状态查询
2、对外数据交互平台接收到请求报文之后,将请求报文保存在表EBIZ_THIRD_TRADE中。
其中:
THIRD_TYPE=03(03=淘宝)TRADE_TYPE=15(15=订单详情查询)FROM_TYPE=1(1=接收交易)THIRD_TRADE_ID=淘宝交易流水号
3、对外交互平台通过查询订单相关表,将信息拼接成接口文档格式内容返回给淘宝。
4.1.2.4创建用户流程
1、系统调用创建用户方法,传入第三方类型及ID
2、使用第三方类型和ID查询表EBIZ_USER_THIRD_INFO,若存在数据,说明该第三方用户已近创建过,无需创建;若不存在数据,创建新的用户
3、在PF_CUSTOMER插入用户数据,其中NAME=ta_tb00001,PASSWORD=null,REAL_NAME=从订单中获取,TYPE=1(个人),STATUS=1(有效),CUSTOMER_SOURCE=02(淘宝)(该属性重要)
4、在EBIZ_USER_THIRD_INFO插入数据,THIRD_USER_TYPE=TAOBAO(淘宝)THIRD_USER_ID=第三方用户ID,CUSTOMER_ID=用户表主键
4.1.2.5快捷核保功能
1、程序模块调用快捷核保功能,根据产品类型与订单类型查询表EBIZ_PRODUCT_CHECKRULE核保约束条件。
2、根据查询条件逐条校验,将核保结果返回给调用方法。
4.2子系统逻辑视图
4.2.1逻辑视图说明
4.2.2接口说明
接口名称
规则描述
提供者
使用者
备注
核保接口
为淘宝提供的接口,在用户在淘宝网上购买保险时提供核保的接口。
电商
淘宝
承保接口
为淘宝提供的接口,在用户在淘宝网上支付过后调用esb提供保单号。
电商
淘宝
订单状态查询接口
为淘宝提供的接口,在用户在淘宝网上输入淘宝订单号可以查询到订单的详细信息。
电商
淘宝
2次核保接口
为淘宝提供的接口,在适宜的情况下淘宝会调我们这个接口进行2次核保
电商
淘宝
5数据库设计
5.1数据库说明
由于目前需要对接的产品为非车险(意外保障类产品),需要增加一套意外保障类险的表。
因为财险公司主要业务分两大类:
车险与非车险。
车险表的设计结合其它保险公司与天安车险业务特点设计而成,已经在《微信订单微支付》中设计完成。
对于意外险表设计结合第三方非车险接口设计,以便后期系统的扩展。
5.2数据库概念模型设计
该部分是详细描述数据库设计内容,视情况可将其他设计工具中的内容直接引入
5.2.1数据实体描述
淘宝对接需要用到的表,这些表都各自对应着一个实体:
1.EBIZ_MAIN_ORDER非车订单主表对应实体EbizMainOrder
2.EBIZ_THIRD_ORDER第三方订单扩展表对应实体EbizThirdTrade
3.EBIZ_PRODUCT产品表需配置数据对应实体EbizProduct
4.EBIZ_PRODUCT_CHECKRULE产品校验表需配置数据对应实体EbizProductCheckRule
5.EBIZ_PRODUCT_PROPERTY产品属性表需配置数据对应实体EbizProductProperty
6.EBIZ_ORDER_INSURANCE订单险种表对应实体EbizOrderInsurance
7.EBIZ_APPNT投保人表对应实体EbizAppnt
8.EBIZ_INSURED订单被保人表对应实体EbizInsured
9.EBIZ_INSURANCE_KIND险种对应险别表对应实体EbizInsuranceKind
10.PF_CUSTOMER用户表需先删除再创建对应实体PfCustomer
11.EBIZ_USER_THIRD_INFO用户第三方账户信息表对应实体EbizUserThirdInfo
12.EBIZ_IMPART订单告知表对应实体EbizImpart
13.EBIZ_IMPART_ITEM订单告知项表对应实体EbizImpartItem
14.EBIZ_OPER_HIS操作履历表需先删除再新增对应实体EbizOperHis
15.EBIZ_BNF订单受益人表对应实体EbizBnf
16.EBIZ_ESB_MESSAGE保存ESB信息表对应实体EbizEsbMessage
17.EBIZ_THIRD_TRADE第三方交易信息表对应实体EbizThirdTrade
5.2.2数据实体-关系图
5.3数据库逻辑结构设计
5.4数据库物理结构设计
5.5数据备份机制
6数据转换
6.1数据转换方案
7与其他系统之间的依赖关系
7.1测试环境接口地址
7.1.1测试环境提供给淘宝的接口
核保接口:
http:
//180.168.131.15/weixin/eservice/ebiz/taobao.action?
action=underWrite
承保接口:
http:
//180.168.131.15/weixin/eservice/ebiz/taobao.action?
action=acceptInsurance
订单查询接口:
http:
//180.168.131.15/weixin/eservice/ebiz/taobao.action?
action=orderStatus
二次核保接口:
http:
//180.168.131.15/weixin/eservice/ebiz/taobao.action?
action=underWrite2
7.1.2测试环境调用ESB的接口
获取保单号接口:
http:
//10.100.133.179:
8002/netsalesService/doCarProposalSave?
wsdl
7.2生产环境接口地址
暂定
8质量及其它方面
可维护性
代码设计良好,维护起来容易。
安全性
本产品采用的是前置调用后置的方法,前置提供个外网地址给淘宝,前置只是用来封装数据和进行一些简单的逻辑判断,通过内网来访问本地的webService后置,而后置则进行涉及数据库表等安全性的操作,有效的提高了代码的安全性。
另外对于修饰词private,protected也有做相关的处理,合理的封装也提升了代码的安全性。
健壮性
可扩展性/灵活性
利用重写重载的机智,调用后置接口,在前期设计时用了大部分时间,不过此代码利于扩展,如果在其他平台上想要发布一个商品,所用新增的代码基本就只有前置新增一个该平台的核保承保控制器,封装实体以及产品的配置,可扩展性好,灵活性好。
稳定性/可靠性
算法合理性与性能优化
界面友好性
本产品无界面
9附件