XXX:
当前无现金和无卡支付成为支付常态,为有效应对市场变化,全方位提升客户业务办理便捷度,有效支持网上预约、支付、缴费、移动扫码支付等业务开展,同时为外拓营销提供更有力的金融产品,不断提升农商银行市场竞争力,XX银行方案建设XX银行XX小程序系统。
一、系统根本功能
小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及〞的梦想,用户扫一扫或者搜一下即可翻开应用,也表达了“用完即走〞的理念,用户不用担忧安装太多应用的问题。
〔一〕XX小程序能够为客户提供网点、自助设备及农金通效劳点位置信息、联系方式,同时能够为客户提供微信(支付宝)等渠道的支付功能。
〔二〕微信(支付宝)小程序运行环境,基于wxml+wxss+js〔视图+样式+控制〕开发,开发本钱低,并且很快就可以将自己的产品推向市场进行试验,如果效果不好可以马上重新对其进行改进,即便重新打造一款新的小程序也并不需要太多的时间。
〔三〕小程序中可以逐步增加业务预约功能、金融知识、业务咨询、场景功能等,多场景聚合,多元化开展。随着互联网效劳的开展,智能支付的普及,效劳会逐渐从单一预约、扫码支付领域向着多元化开展,未来不管是公交支付、水电煤缴费、寻医挂号等功能都将被整合进城市效劳小程序应用的范畴,逐步打造农商银行县域智慧金融系统,从线上预约,到场景支付,全面为客户提供优质高效的互联网金融效劳。
〔四〕按照【中国人民银行关于印发<条码支付业务标准〔试行〕>的通知】〔银发【2021】296号〕文件要求,XX银行与财付通支付(蚂蚁金融)科技〔以下简称财付通〕签订了【微信支付效劳协议】及其补充协议。根据【微信支付效劳协议的补充协议】〔协议编号:T-301-WCP-20210807-03〕规定,资金清算模式为:
1、用户在微信小程序缴费系统付款,由用户零钱或绑定银行卡支付,款项由财付通代扣;
2、财付通收到款项后转至中国银联;
3、中国银联将收到款项清算到XX银行报备的内部资金户;
4、XX银行内部资金户收到款项后,清算到收款商户在XX银行行开立的账户中〔资金由财付通及中国银联清算到XX行内部资金户为T+1模式,即资金在财付通和中国银计留存一个工作日〕。
二、系统技术架构
总体设计目标:高并发、大数据承载量、平安、稳定为最终实现目标。
〔一〕网络架构:在平安缓冲区放置1台效劳器,通过虚拟化技术为XX行提供流量转发和WEB效劳。在应用及数据区放置1台效劳器,通过虚拟化技术为XX行提供系统应用及数据库效劳。
〔二〕技术架构:小程序客户端采用C/S〔小程序客户端—效劳器〕架构,管理端采用B/S架构〔浏览器—效劳器〕。
使用PHP三层体系架构:
表示层:主要使用WEB-Render方式,逻辑层强大和完善,无论表现层如何定义和更改,各司其职,逻辑层都能完善地提供效劳。
业务逻辑层:主要针对具体问题操作,也是对数据Data层的操作,对数据业务进行逻辑处理,实现积木拼接式搭建。
抽象接口层:对数据访问层抽象出接口,业务逻辑层经过抽象接口层去调用,保证调用别离,扩展别离。
数据访问层:主要对原始数据进行加工和提取,为业务逻辑层提供数据效劳。
设计模式:单例模式、适配器模式、模版方法模式、职责链模式等
〔三〕总体设计原那么:系统架构设计原那么:可靠性、健壮性、可修改性、便捷性、可测试性、效率性、标准化性、先进性、可扩展性。
依据七大原那么:开-闭原那么〔OCP〕、里氏替换原那么〔LSP〕、依赖倒转原那么〔DIP〕、接口隔离原那么〔ISP〕、迪米法特原那么〔LKP〕、单一职责原那么〔SRP〕、合成/复用聚合原那么〔CARP〕。
平安设计:信息内部传输采用MD5不可逆加密算法,涉及到金额、银行卡、结算等敏感信息系统会自动过滤恶意请求,保证用户资金平安。
1、小程序架构方面。微信小程序的框架包含两局部View视图层、App Service逻辑层,View层用来渲染页面结构,AppService层用来逻辑处理、数据请求、接口调用,它们在两个线程里运行。视图层使用WebView渲染,逻辑层使用JSCore运行。视图层和逻辑层通过系统层的JSBridage进行通信,逻辑层把数据变化通知到视图层,触发视图层页面更新,视图层把触发的事件通知到逻辑层进行业务处理。
为确保小程序端平安,在小程序开发设计时采取不信任不留存策略,不在本地保存敏感数据,所需数据均由post请求所得,即用即走,不储存于本地。
在用户使用时,只允许用户输入我们期望的数据。例如:年龄的input中,只允许用户输入数字,而数字之外的字符都过滤掉。
2、小程序后台管理方面。小程序后台管理采用php开发,选取thinkPHP框架为根底开发,框架本身具有较强的稳定性优势,在开发过程中对于数据来源更为严密的验证措施以加强系统平安性,针对平安性方面,系统设计上做了以下针对性优化
〔1〕防止wxx攻击。对提交的任何表单采取不信任原那么,验证表单来源并对表单数据进行敏感词过滤,过滤或移除特殊的Html标签,对于用户输入数据同样只允许用户输入我们期望的数据,并将重要的cookie标记为 only,防止Javascript 中的document.cookie语句就获取到cookie。
〔2〕CSRF跨站请求伪造。CSRF是通过伪装来自受信任用户的请求来利用受信任的站点,针对于改攻击方式,系统采取对于数据请求均采用POST请求,防止GET方式会在web效劳器和代理效劳器日志中留下数据尾巴,使攻击者有迹可循。在对web站点授权中采取瞬时授权方法。
〔3〕针对SQL注入。防止sql注入攻击,我们对用户输入内容均采取不信任原那么,通过正那么匹配对输入内容进行校验,并其长度,使用的sql语句采取参数化sql进行数据的查询存取,连接数据库的用户使用单独权限,有限的数据连接,对于敏感信息的存放采用多重加密方式,并且系统对于原始的异常信息进行了包装,防止错误暴露。
3、小程序接口通讯方面。小程序接口通讯为加强平安,采用 s协议,对数据进行加密传输及身份认证。
〔四〕系统运行模式。小程序效劳端使用php开发,采用web模块模式运行,模块模式是mod_php5模块的形式集成,此时mod_php5模块的作用是接收Apache传递过来的PHP文件请求,并处理这些请求,然后将处理后的结果返回给Apache。我们在Apache启动前在其配置文件中配置好了PHP模块〔mod_php5〕, PHP模块通过注册apache2的ap_hook_post_config挂钩,在Apache启动的时候启动此模块以接受PHP文件的请求。
〔五〕用户管理模式。小程序系统对于系统用户,我们采用RABC管理模式,即基于角色的用户权限管理,不同用户分属于不同的角色,不同角色拥有不同的权限。
〔六〕文件传输模式。后台对账以及结算文件传输采用ftp传输,小程序暂未涉及文件传输,预留文件传输接口同样采用ftp传输。
〔七〕网络平安方面。对于网络平安方面,我们采用不信任策略,即不相信表单,不相信用户,对于所有参数进行再次验证,确保其符合协议规那么,并对于生成的所有sql进行敏感词〔如:update,delete等〕验证,防止sql注入攻击。
系统采用safehtml以防止xss攻击,并在原根底上同时采取黑名单/白名单两种方法来加固平安。
〔八〕是否为全栈开发。小程序系统从小程序开发、网页设计到效劳端搭建均为全栈式开发。
三、平台配置
WEB效劳器操作系统环境:
WEB效劳器数据库环境:
效劳器环境:
四、互联网网络带宽预估
XXX工程所需互联网网络带宽为10M。下载本文