石头
高级工程师
快钱SDK支付系统
1.快钱SDK支付系统(2017.07-至今)
项目架构:
Spring(3.5)、SpringMvc、Mybatis、Redis、Oracle
项目介绍:
该项目主要提供SDK前置服务,使得快钱智能POS、快钱自有APP、合作方APP可以接入本产品实现支付相关需求。项目主要由SDK前置系统(APP-SDK)、管理系统(SDK-MANAGE)、小中台系统(SDK-MP)3个系统组成。
APP-SDK系统中包含了基础接口模块、智能POS专用模块、有卡交易模块、扫码交易模块、MOS接入模块、飞快付接入模块;
SDK-MANAGE系统主要包含厂商维护、商户维护、母POS维护、设备生成维护、商户终端设备的绑定维护等;
SDK-MP系统主要是后面重构的一个系统,这个系统主要是项目组内部系统和公司别的系统之间调用全部放在这里
项目职责:
1.负责app-sdk系统基础接口模块初始化流程的开发、有卡、扫码等交易流程接口部分开发
2.负责sdk-manage系统开发
3.负责sdk-mp系统开发
项目总结:
1.app-sdk从部门成立以来就一直在做,历经了很多版本,功能也越来越全面。其实这个系统说简单也简单,毕竟是网关层,大部分都是在做转发,唯一比较复杂一点的可能也就是我们做了一个三层密钥。
2.我觉得app-sdk最大的几个问题,一是字段不统一,时间长了,经手的人多了,导致同一个含义的字段可能存在好多版本,接入方很累,我们自己也容易搞乱;还有就是订单表T_PAY_ORDER,这张表的存在原来是因为我们自己要做通知,但后来通知又不做了,这张表我们自己又不敢用,毕竟保持跟主库的一致性实在太难了,得不偿失,但这张表现在依然是存在的,且数据量越来越大,哪天一旦打到瓶颈,造成数据库问题,势必影响所有经过SDK的交易,后果不堪设想;最后是所有业务全部公用一个线程池,这样是很不好的,业务之间的重要性不同,比方说交易请求,显然要比查询请求重要得多。假使我们有一个接口出现问题,导致大量线程被占用无法释放,那么最后的结果很可能就是整个SDK全部挂掉。
项目案例
logo
浙公网安备33011802001633号
浙ICP备1805484号-2