一、主要技术栈
PHP,MySQL,Redis
二、项目概述
我们的支付系统主要是起了一个承上启下的作用:由市场上的小贷商户(app )对接我们的支付系统后,通过 HTTP 方式请求我们的支付系统,支付系统进行相关的信息校验入库,再异步对接各个银行支付渠道(宝付,易宝,中金等等)。
对于处理中的订单,系统会通过主动查询银行渠道,或者接收银行渠道回调两种方式,来查询订单的确切状态。
三、项目特色
该支付系统因为对接了多家小贷商户 ,所以存在高并发问题。
1、分布式锁限制同一笔订单的访问频率。
2、通过 MQ 异步向银行渠道发送扣款请求,保证商户请求不阻塞。
3、对于数据量比较大的订单表,新数据后续采用分区表的形式管理,不再进入老表。
4、建立新表时,对于查询频繁的字段添加索引。
5、 心跳机制。由于是异步向银行发出扣款请求,我们需要通过轮询获取小贷商户的待处理订单。在这个过程中,如果心跳间隔过长,我们会触发告警。