简易支付平台(已对接微信支付)

      最近H5开发的app需要对接微信支付,我想的是公司貌似开没有支付平台,听说了另一个项目也要对接支付。为了宇宙的和平,我想就提出来单做,所以说干就干,不考虑那么多,只要自己认可自己就行。

一、支付平台的核心意义思考

        最近看到很多程序员方面的书,都提到细思慢想,让编码时间尽可能少。所以我就从做支付的意义开始思考,发散开来。其实对于我们目前需要来说就是完成支付,老大给我的时间也就是1周,这1周我要想像其他聚合支付一样做的你们牛x,那就有点吹牛了。所以先阶段先当为公司支付平台起个头吧。

         在我看来支付的核心就是我发起支付,然后完成支付,最后你告诉我支付结果,这就是支付平台的意义。所以架构怼我来说一下就简单了。

二、简易平台交互流程设计

简易支付平台(已对接微信支付)_第1张图片

就是这么简单,对接的业务系统发起支付前,先调用支付中心,生成预支付信息,支付中心存库预支付信息。调用的时候业务系统通过链接进入支付中心(携带预支付单号)。微信H5支付会校验referer,不存库,把支付信息通过链接全部带过来没走通,而且回调的url必须在商户平台设置域名,如果多个平台对接支付,那微信哪里最多只让设置5个,肯定是不够用的。所以支付中心单独使用公司的二级域名:xxx.xxxx.com,在微信商户平台配置这一个就行了。另外微信的开发文档写的真是稀烂,云里雾里的,之前配置的地方说设置一级域名其下的二级域名也有权限了,实际是扯淡忽悠。

三、架构接口设计

        按照这个简单的设计要接入支付就是2调1链

第一次:支付前调用支付中心预支付接口,生成预支付信息

链接:通过支付中心url,参数拼接source业务系统来源(由支付中心告知),payNo业务单号(业务系统自行生成,不能含有“-”符号)

第二次:支付中心回到业务系统后,自主发起调用查询支付结果

接口设计我就不能告诉大家了,大家按照上面的思路设计,安全这块可以在链接Url上做文章。

四、给大家看看效果吧

微信浏览器(jsAPI):

1.简易支付平台(已对接微信支付)_第2张图片 简易支付平台(已对接微信支付)_第3张图片  

3.简易支付平台(已对接微信支付)_第4张图片 简易支付平台(已对接微信支付)_第5张图片

非微信浏览器(H5

1.

简易支付平台(已对接微信支付)_第6张图片 2   简易支付平台(已对接微信支付)_第7张图片

 

简易支付平台(已对接微信支付)_第8张图片 简易支付平台(已对接微信支付)_第9张图片

 

支付成功/支付异常提示的页面与上面一致。

网页二维码支付

简易支付平台(已对接微信支付)_第10张图片

这个暂时做的还比较粗糙,还有很大的优化空间。页面也还要美化美化,我这一个后端做这个效果,其实我已经觉得不错了。简易支付中心就基本完事了,对于业务系统与支付中心间的鉴权可以自己设计,或者使用大家公司自己的加密方式。其他还有很多查账、支付订单等都还没有集成进去。这里的二维码使用的是zxing,中间的logo因为是springboot,读取静态资源大家可能会遇到路径问题,我这里也遇到了,解决思路是先读临时文件,如果没有就从jar里读取到流文件,写到临时文件。

      其实在这个基础上还可以钱不收到自己公司,可以直接收到第三方公司,那我们也只是需要增加第三方相关参数维护信息表。大家自己想想吧。

你可能感兴趣的:(框架搭建,springboot)