Darwin平台-聚合支付平台

我要开发同款
程序员小金鱼2022年02月19日
233阅读

作品详情

系统名称:Darwin平台-聚合支付平台
使用技术:SpringBoot+jenkins+ApiDoc+Maven
系统描述:构建微服务聚合支付平台,整合第三方支付接口(支付宝、银联支付、微信支付等),封装成接口提供给服务接口使用。
责任描述:
a) 与第三方支付接口平台技术人员对接
b) 聚合支付平台数据库表结构设计
c) 基于设计模式构建聚合支付平台
d) 基于MQ实现分布式事务解决方案
e) 使用xxl-job实现聚合支付对账
f) 常用遇到支付难题问题解决
技术描述:
a) 与第三方支付接口平台技术人员对接
负责支付宝、微信支付、银联支付等支付接口技术人员沟通对接
b) 聚合支付平台数据库表结构设计
负责聚合支付平台数据库表结构设计,payment_channel渠道表、payment_transaction流水表、payment_transaction_log日志表等实现完全可视化界面支付开关控制支付渠道。
c) 基于设计模式构建聚合支付平台
使用策略+工厂设计模式实现支付接口提交html表单元素重构、使用模版方法+工厂设计模式实现共同异步回调代码重构,采用多线程+MQ实现支付回调日志收集
d) 使用xxl-job实现聚合支付对账
使用分布式任务调度平台XXL-JOB实现支付接口产生延迟导致订单状态不同步实现自动化补偿,每天晚上两点钟时间定时触发任务,商户端主动使用支付id调用第三方支付渠道接口查询支付状态是否已经支付过,如果第三方支付渠道接口已经支付过,同步商户端订单状态。
e) 基于MQ实现分布式事务解决方案
在微服务系统中,支付服务调用积分服务接口增加对应积分,该场景存在分布式事务问题,我们采用rabbitMQ实现+补单形式保证最终一致性实现双方数据同步
f) 常用遇到支付难题问题解决
问题1:支付回调接口中,产生延迟通知?导致支付状态不一致问题
解决方案:商户端使用任务调度平台主动调用第三方接口查询,实现数据同步
问题2:重试支付回调接口时,如何保证回调接口通知幂等性问题
解决方案:因为第三方支付接口采用间隔性重试机制,使用支付全局id查询支付状态已经支付,及时响应成功状态通知给第三方支付平台不在继续重试
问题3:支付金额与商品金额如果不一致时,如何处理
解决方案:在支付回调中查询待支付表记录金额与实际回调金额是否一致,如果不一致该笔订单纳为异常订单
问题4:第三方支付平台如何与对接系统保证分布式事务问题
解决方案:使用重试+补偿+日志记录形式保证最终一致性实现数据的统一
问题5:支付服务如何与其他系统保证分布式事务问题
解决方案:LCN分布式事务解决框架解决分布式事务问题
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论