PayMap是一个使用Java语言集成三方支付的小Demo,现已集成支付宝(国内、国际、移动端、PC端)、微信、银联(ACP、UPOP)、光大(网关、网页)、邮政支付,采用的技术栈为:SpringMVC+Spring+MyBatis+Shiro+RabbitMQ+Redis。
- 支持前面提到的各种**支付
- 支付请求调用支持HTTP和异步MQ
- 控制层统一异常处理
- LogBack日志记录
- Redis缓存机制
- Shiro安全机制
- MyBatis代码自动生成
- HTTP请求日志记录
- RESTful APIs
这里不多说,先去看三方支付提供的官方文档,如有疑问可以跟我交流。
由于是Demo,银联支付会支持ACP和UPOP,UPOP属于老平台文档较少有可能有人会用到,现在用的基本都是ACP。另外三方支付对接由于各种网络原因,支付可能存在通知失败或者MQ消息有可能失败的情况,这里需要采用补偿机制,一般的补偿方案是:消息落地数据库,流程成功删掉指定消息,对于失败的消息有专门的定时任务轮询重发,重发次数可以参考指数退避算法,业务方也要做好接口幂等,至于具体的补偿方案请自行查阅,本Demo没有提供。对于支付通知失败的情况官方建议的流程是:业务方主动向三方支付查询消费交易状态然后进行后续业务处理,查询接口本Demo中也没有提供请自行实现。如果发现缺少JAR包,可以从WEB-INF目录下找到,请自行更新到你本地Maven库中。最后一点是涉及到支付证书一类的配置文件均为空文件请自行替换,如果出现“hugnew”字符的均需修改为您自己的配置信息。
微信:crackxb
E-Mail:[email protected]
QQ群:427697041