由于公司业务需要,花两周时间实现了一个小型的支付系统,麻雀虽小五脏俱全,各种必须的模块如账户加锁,事务性保证,流水对帐等都是有完整实现的,整个开发过程中有很多经验积累,再加上在网上搜索了一下,大部分都是些研究性的论文,对实际使用价值不大,所以这次特意拿出来和大家分享一下。
这个系统可以用作小型支付系统,也可以用做第三方应用接入开放平台时的支付流水系统。
原来的需求比较负责,我简化一点说:
- 对每个应用,对外需要提供 获取余额,支付设备,充值 等接口
- 后台有程序,每月一号进行清算
- 账户可以被冻结
- 需要记录每一次操作的流水,每天的流水都要和发起方进行对账
针对上面的需求,我们设置如下数据库:
CREATE TABLE `app_margin`.`tb_status` ( `appid` int(10) unsigned NOT NULL, `freeze` int(10) NOT NULL DEFAULT 0, `create_time` datetime NOT NULL, `change_time` datetime NOT NULL, PRIMARY KEY ...