前言
第一个小小项目,后来发现确实很多不足,感谢导师和leader的评审。
总结几点:
现金支付时刻注重安全,稳定,任何时候都认为发过来的数据是不安全的。
数据库表应为innodb引擎,而不是myiasm引擎,以支持事务回滚。
常用字段设置index。
设有备用字段以便以后扩展。
token属于非必须自动,可以放于内存。
密码验证过程用随机干扰码增强安全。
web与cgi通信,cgi与server通信协议应不同。
socket通信时应先读4bytes取出长度,循环读包直到长度足够。
接收数据不能截断,属于数据毁坏,可以分页分次读取。
数据长度与声称的不同,应予报错。
CGI与server的通信应是短链接,server则维护一个消息队列。
CGI与server通信协议key=value等形式比较易扩展。
事后总结
这个项目是比较不切合实际的,运行成功,但有很多缺点。最大的缺点是没有实际模拟出第三方支付平台的功能。既做了淘宝一部分,又做了支付宝一部分。
没有使用余额,结算时不复杂,没有使用事务型数据库开发。
cgi与server的通信协议没有统一,后面混乱了,这是一开始没有考虑可扩展性的后果。
cgicc需要再度封装,mysql的api要用c++的方式在封装。