2019/06 - 2020/03 源头聚合支付中心 Java
项目介绍
源头聚合支付中心诞生的背景是随着源头V购和源头机械通中越来越多模块需要用到支付功能,然而现在的移动支付方式
颇多,反复接入显得项目代码冗余,开发周期太久,过于分散。支付可不仅只是简单支付,可能存在订单查询,退款,
提现等功能,每接入一家支付,都得一一实现,着实令人望而生畏。这个时候,我主动向公司领导反映此问题,并提出
了自己的解决方案,最终领导同意此项目的开发,并由我全权负责。项目需要标准化的API接口,提供支付方式的选择并
支付,支付事件的通知,能够抗住高并发,接口的安全采用双向证书+数字签名+通讯协议采用HTTPS。基于商户、应用
模式,如果需要接入聚合支付需要申请商户,创建应用,生成证书,证书通常时长为1年,每年需要及时更换证书,大大
提高安全性。项目实现了:微信支付、支付宝。
我的职责
我主要负责标准API的设计,定义API职责范围、API升级、暂停、关闭、返回数据模型,返回码(错误码)等。接口数
字签名创建、验证的设计与实现,负责支付接口、选择支付方式接口、订单查询接口、提现接口、提现订单查询接口的
实现。采用RocketMQ定时消息(延迟队列)实现订单事件通知,以及容错延迟通知一共18次。项目组支付安全系数要
求极高,不得出现任何差错,负责项目接口的自动化测试程序实现,包括:接口幂等性,SQL注入攻击,字段数据合法
验证,证书认证,商户认证,商户应用认证,黑白名单验证,数字签名认证等。PaySDK的实现,接入支付只需3行代码
,项目开发速度大大提高,接入支付不在是一件痛苦的事!
2019/05 - 2020/03 源头V购 Java
项目介绍
源头V购属于垂直电商,项目专为挖机机主定制配件商城,根据挖机机型自动匹配挖机相关配件、日常耗费品、维修师傅
等。项目特点:分类比普通电商分类3级还多,可能多达10级,分类下挂载商品,分类类似Linux目录结构,但是真实情
况比Linux目录还要深的多。项目采用SpringCould+ZooKeeper+Redis+Kafka+RocketMQ++Zuul+ApolloConfig+Ningx+
MyCat+MySQL+MongoDB+ElasticSearch,项目中事物均采用柔性事物。项目中需要实现高效搜索某个分类路径下的
所有分类,目前主流解决方案都是使用前缀搜索,虽能实现但是面对很长的前缀依然存在性能太低、开销大等问题。
我的职责
商品分类数据模型和商品数据模型的标准规范定义,负责商品服务内核研发,商品和分类事件流架构设计与实现。商品
存储引擎和分类存储引擎标准接口的设计与实现,商品数据库和分类数据库的设计,实现采用MyCat+MySQL。商品和
分类的搜索引擎采用ElasticSearch,并利用ElasticSearch分词特性,实现高效搜索指定分类下所有分类和商品,获得项
目经理表扬。基于Redis集群,实现商品和分类高速缓存系统,为公司实现花最少的钱,达到最好的效果。前端采用Vue
与腾讯X5内核浏览器实现嵌入源头机械通,完美整合。
2018/05 - 2019/05 源头机械通 Java
项目介绍
该项目是工程机械综合服务平台,提供寻找最近挖机、拖车、驾驶员、修理师傅、修理厂、配件店。平台初衷是一站式
解决所有工程机械相关方面诸多痛点,如:信息匮乏、交流困难、信息过时等,可实时更新修理师傅、挖机师傅最新位
置信息,平台接入高德地图提供实时位置服务。平台以简约风格,操作简单,为中老年用户提供优质服务。目前平台客
户端只支持Android,IOS和小程序暂未支持,后续将进一步完善。
我的职责
参与项目从需求分析到技术选型再到项目落地,刚开始项目采用Spring MVC 单体应用开始,但是随着项目功能的不断增
加与删除,单体应用逐渐变大对应用部署、运维、BUG定位修复的难度越来越大。这个时候项目组决定架构转为微服务
,采用:SpringColud,按照项目功能拆分、接口的设计(遵循向下兼容),数据库拆分。由于数据库的拆分,加大事物
处理难度,项目多采用柔性事物,项目最终实现架构的转型升级,用户体验也更好了,服务的维护、新功能的发布和卸
载变的更加轻松。