银行开发遇到的坑

第一次进行银行项目开发,没什么经验,遇到的问题数不胜数,我就给大家详细说说,没有这方面经验的可以提前做好准备。这次我们负责对银行开发的项目主要是微信端做一个微信和银联双通道的缴费项目,另外一家公司负责电脑端的微信扫码支付和银联支付。  

平时公司用的阿里云的服务器,系统是centos,银行用的redhat企业版,所以我们就想当然的认为centos是redhat转换过去的,所以直接在空的centos上搭建安装环境就能直接用到centos上,实际上是大错特错。由于银行系统不能直接连外网,所以yum,wget都是无法使用的,只能拷贝相关程序和依赖包进行编译安装,第一次进行安装环境就用了几天,开始无法解决,最后用相同版本的redhat系统才成功安装了所需环境,这也使我对linux系统更加熟悉。期间由于我的误操作卸载了curl模块,直接导致ssh都无法连接,系统也无法开机,最后重装了linux系统才解决,现在想想都后怕。当时把系统搞崩溃了,压力山大,晚上回去一晚上都没睡,用虚拟机装redhat系统不停的测试,幸好vm虚拟机有快照功能,安装完系统后直接先来个快照,后面环境安装错了就还原快照,恢复到初始安装状态,把安装命令组合成.sh的批处理命令进行一键安装,这个决定省了很多事,也减轻了压力。


服务器的环境终于安装好了,接下来又遇到的问题是web端不能直接链接数据库,db端和web的通信必须使用接口进行完成数据交互,这个就是项目规划的时候不明确银行系统的环境以及安全接入的流程导致,后来又进行修改才完成。以为这样就完了么,no,问题还多着呢。之前和微信端接入采用微信原生接口,项目开始的时候银行也没提不行,后来不行,才采用其他第三方微信商户接入的方法,然后我们花了一周修改完成了。微信支付需要用到openid,所以我们的应用单独添加了auth2接口从公众号应用中获取。银联支付的秘钥必须放在db端,改造银联接口又花了几天。然后就是银联流程问题,由于微信端和电脑端都需要使用银联,但是银行申请的时候没有考虑到是2个服务器地址,只申请绑定了一个ip地址,这导致需要重新申请。


中途出现一个日志写入没有权限,废了好大劲才搞清楚,原来是crontab定时任务写日志的时候将日志文件的权限变成root,而项目的文件权限都是www,所以项目文件写日志的时候都会提示没有权限。


还有所有对外访问的ip或是域名都要在开发过程中进行记录,银行防火墙会对相关ip和域名增加访问权限,否则类似调用腾讯地图或者百度地图的都无法成功。


由于安全性,所有的文件上传都必须打包好,然后通过银行工作人员进行上传,可能要经过很多层跳板机,所以修改起来特别麻烦,所以一些小问题就直接通过linux vi进行修改,所以一些vi中的查询,显示行数,复制,黏贴等操作要相当熟练才行。


关于银联支付,项目中需要用到对公和非税分别用到不同的银联商户,开始不清楚,都用的一个商户测试秘钥,到后来联系银联才知道,多个商户不能共用一套秘钥,最后还是改了程序实现,商户和秘钥一对一才完成对应支付流程。


其余对三方的微信支付域名对应的ip是多个,而银行白名单就填了一个,结果有时候能访问成功,有时候就不行,我们查看后其实是对三方的微信配置问题。
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值