基于C#.net技术的电子支付系统设计与实现

二 系统结构与开发技术

(一) 系统的开发环境

1 系统软件要求

该系统所需要的操作系统可使用Windows 2000或Windows XP,及Windows 2003 server。Web服务器采用IIS 5.1,数据库采用SQL Server 2000,通过C#.net 来进行页面设计,在Windows XP操作系统上,由IIS Web服务器和SQL Server 2000数据库建立Web站点,通过ASP.net技术开发动态页面。

2 系统硬件要求

由于本系统采用B/S模式,配置有服务器端和客户端之分

2.1 服务器端

  1. Pentium 4 2.0G以上微处理器
  2. 1G 以上内存
  3. 120G以上万转硬盘
  4. 至少10M以上的速度到Internet的连接

2.2 客户端

  1. Pentium 1G以上微处理器
  2. 128M 以上内存
  3. 40G以上硬盘空间
  4. 1M以上Interent

(二) 系统所用的开发技术简介

1 C#.net概述

C#.net 是微软.net体系中一种面向Internet的快速的开发工具,是新一代的编程语言。

现在已经进入了第三代因特网的时代,它的焦点将从连接在因特网上的单个Web站点和设备转变到汇聚各种计算机、设备、服务来发布更广泛、更丰富的解决方案。

C#.net是Visual Studio.net的一分子。Microsoft公司重新设计了产品,而不仅仅是简单地为C#添加某些新功能。新版本比以前的版本更易于编写分布式应用程序,如Web和企业N层系统。Visual C#.net具有两个新的窗体包(Windows窗体和Web窗体),用于访问断开连接的数据源的ADO.net新版本;最新型的语言,删除了传统关键字,提高了类型安全性,并公开了高级开发人员需要的低级别构造。

这些新功能为开发人员开启了一扇新的大门:使用Web窗体和ADO.NET快速开发可伸缩的Web站点,通过继承可真正支持面向对象的编程,Windows窗体本身支持访问和可视继承,部署的应用程序就像把可执行文件和组件从一个目录复制到另一个目录那么简单。

C#.net现在可与其他Microsoft Visual Studio.net语言完全集成。你不仅可以用不同的编程语言开发应用程序组件,而且你的类现在可以通过跨语言继承性来继承用不同语言编写的类。使用统一的调试程序,可以调试多语言应用程序,而不管它们是在本地运行还是在远程计算机上运行。最后,无论你是用何种语言,Microsoft.net框架都为Microsoft Windows和Internet编程提供丰富的API。

在提供强大功能的同时,C#.net仍然保持了Visual Studio的亲和性和简单性。

2 SQL Server概述

SQL Server是作为服务运行的Windows应用程序,即它要运行在Windows环境下,并且启动后是作为一个服务程序运行的,因而极少需要和用户交互。SQL Server提供了用于建立用户连接、提供数据安全性和查询请求服务的全部功能。开发人员所要做的是建立数据库和与之交互的应用程序,而不用理会其操作。

3 ADO.net 概述

ADO.net是.net平台数据库连接技术,是在ADO基础上的一种新的对象模型。

随着软件的发展,数据存取方式除了不同数据源存取的一致性(UDA策略)之外,分布式应用程序的扩展性(离线存取),以及不同平台数据交换(底层为XML技术)的需求也日益重要。为了适应上述需要,ADO.NET出现了。

在.NET平台中访问数据库的技术是ADO.net。ADO.net是由Active Data Object(ADO)改进而来,它提供平台互用和可收缩的数据访问功能。由于XML(extensible Markup Language,可扩展标识语言)是用于进行数据传送的格式,任何可以读取XML格式的应用程序都可以对数据进行处理。实际上,接收组件根本不需要ADO.net组件,它可以是基于微软Visual Studio的解决方案或在任何平台上运行的任何应用程序。

和ADO不同的是,ADO.net遵循更通用的原则,不专门面向数据库。ADO.net集合了所有允许数据处理的类,这些类表示具有典型数据库功能(如索引、排序和试图)的数据容器对象。尽管ADO.net是.net数据库应用程序的解决方案,但从总体设计上来看,它不像ADO模型那样以数据库为中心,这是ADO.net的一大特点。

ADO.net与ADO有很大差异。ADO.net是新的数据访问编程模型,需要开发人员的全面理解、投入和新思维。然而,一旦开始掌握ADO.net,你将意识到,原有的ADO技巧非常有助于以不同、却更巧妙和可靠的方式,来创建有效的应用程序和解决各种老问题。

4 C# .NET 对数据库的访问

C#.net对数据库访问主要是利用ADO.net技术实现的,ADO.net可以用于访问多种数据库,这是自从ADO以来就有的功能。在ADO中,数据通过OLE DB支持程序来访问,可以为所有类型的数据源和传统的关系数据库编写出这种支持程序,例如文件系统和一般文件。ADO.net还可以把数据库中的任何数据转换为XML,再访问它。这样,为ADO.net编写支持程序就变得更加简单,因为它仅需要把数据转换为XML格式即可。

利用C#.net通过ADO.net来访问数据库的具体流程为:

    1. 浏览器首先向Web服务器发出要访问一个页面的请求,这里使用的Web服 务器是微软的IIS。

4.2 Web服务器接到请求之后,把需要的C#.net程序读入内存,解释并执行C#.net程序代码。如果在C#.net程序中含有ADO.net对象,那么ADO.net将建立数据库连接,通过数据记录结果来访问数据库。

4.3 数据库接到命令后,进行相应的操作,然后将数据结果返回给ADO.net对象。

    1. ADO.net对象获得数据库结果之后,利用C#.net控制程序产生相应页面的内容,由Web服务器输出给浏览器,浏览器接到之后,再显示出来。

三 系统分析

(一) 需求分析

作为一个网络支付系统,就应该能实现在线的支付,存款和取款业务,用户可以注册该系统,为了保证用户的可靠性必须录入与用户相关的信息,姓名,出生日期,身份证号,联系方式等,为了方便起见,应该由用户自己录入,然后写入相关的后台数据库,商家同样应该进行此操作,无论是商家或是购买者都是银行潜在的用户,所以将其归为一类,付款和收款全在转帐业务中完成。用户可以存款和提款,以及修改自己的身份信息。

为了保证网络银行的合理性,既需要管理员对整个系统的使用者进行管理,如对用户的身份,进行管理等,为了保证有对用户业务的控制,如对本地异地取款的控制,本系统采用IP地址识别的方法,所以就需要管理员对IP进行设置,并写入数据库,以便系统在使用时,能够有效的判断用户执行操作的地点是否在本地范围内,如果不在本地,就要实行异地操作了。

同时为了让陌生的游客能够更加了解本系统的运行以及业务范围,还有一个游客模块,仅有浏览功能

总体设计如图3-1所示:

(二) 模块分析

1 注册用户

用来注册新的用户并将新用户的身份信息及账务信息记录入后台数据库。

1.1 注册流程如图3-2所示:

1.2 注册过程具体描述:

用户注册模块包括由服务器读取在客户端已被加密的用户所填写的身份信息如:姓名,身份证号等相关的信息以及开户时所初始化的帐务信息,并在服务器端进行处理后存储到后台相关的数据库里,以保证用户身份的确定以及用户的登陆有效性和管理员的管理,最重要的是保证利用和将来的利益

2 存款业务

2.1 存款过程如图3-3所示:

2.2 存款过程具体描述:

用户进入操作界面后,选择了存款业务后,输入了需要存入的金额提交以后,服务器将读取该金额,并从数据库中调取该用户以往的存款金额,进行相加后将新的金额存入后台数据库,成功后向用户返回相关信息。

3 取款服务

取款业务是为了让用户能够随时随地的能够从网络银行中取得自己的存款,以便支付实物货币的缴费

3.1取款业务流程如图3-4 图3-4-1 和图3-4-2所示:

3.2 取款过程具体描述:

首先,取款分为本地取款和异地取款,当用户进入页面的同时,从IP地址数据库里取出属于本地的所有IP地址段数据与获取的客户端IP进行一一比较,如果用户IP属于这些地址段之中便属于本地。便进入本地取款操作模式,如果用户的IP不属于这些地址段之中,便判断为异地取款,进入异地取款操作模式

取款时,先从用户帐务信息中读取用户的原有金额,与其提交的提取金额作对比,如果提取金额大于数据库中金额,便返回透支信息,对此次提款不予理会不作处理,如果没有透支,就将数据库中的存款额减去提取金额所的金额(若是异地取款,将相减后的金额再减去5元作为异地取款的服务费所的金额)存入数据库,提示用户业务完成

4 转帐服务

该模块提供了用户之间相互转帐的服务,更重要的是这可以作为用户电子支付的平台

4.1 转帐服务流程图如图3-5所示:

4.2 转帐过程具体描述:

转帐服务先从客户端读出需要转帐的金额,以及需要转入的帐户,再从数据库中读取转出帐户和转入帐户的帐务信息判断转出帐户的帐务金额是否够实现这次转帐,不能实现转帐,将转出帐户的原始记录金额减去需要转帐的金额,将此金额加给转入的帐户,在将此数据包存入后台数据库里,提示用户实现转帐业业务,如果转出帐户的原有金额不能实现这次转帐,便返回提示用户金额不足,不能实现后,不做任和处理。

5 身份资料修改服务

该模块是为了用户在修改自己身份时使用

    1. 身份资料修改服务流程图如图3-6所示

5.2 身份资料修改服务具体描述

先从用户资料数据库里取得该用户的身份资料,显示在页面上相应的文本输入框内,如果用户需要修改,只需在该输入框内进行修改便可,提交后将新的用户信息重新写入数据库。

6 账务查询服务服务

此项功能是为了向用户反馈与其有关的所有的银行业务的记录.从记录数据库中取出与此人有关的一切记录显示在页面中的一张表上,没有任何其它操作的功能,以保证这些记录不被修改。

7 IP字段添加服务

该模块是只对管理员开放,当管理员登陆时出现的第一个页面及是如此,管理员只需将IP的起始字段和终止字段填入相应的文本框里,点击添加即可,服务器读取此IP地址段并写入IP地址库中。

8 管理员修改用户个人身份资料服务

该模块是为了管理员在修改用户身份时使用

8.1 身份资料修改服务流程图如图3-7所示

8.2 身份资料修改服务具体描述

先从用户资料数据库里取得该用户的身份资料,显示在页面上相应的文本输入框内,如果用户需要修改,只需在该输入框内进行修改便可,提交后将新的用户信息重新写入数据库。

该模块只能起到用户查看用户的帐务信息,以备不时只用,只是用从帐务记录数据库中查出信心并显示在相应的页面中,无操作。

(三) 系统总体页面流程图

总体页面流程图如图 3-8 所示

(四) 系统数据流图与数据字典

1 系统数据流图

第0层:如图 3-9 所示

第1层:如图3-10所示

2 系统数据字典

2.1数据流条目(部分)

2.1.1提交身份信息=用户名+密码+密码提示问题+密码提示答案+姓名+出生日期+性别+身份证号+家庭住址+联系电话+电子邮件+注册时间+存款金额

2.1.2反馈身份信息 =用户名+密码+密码提示问题+密码提示答案+姓名+出生日期+性别+身份证号+家庭住址+联系电话+电子邮件

2.1.3提交帐务信息 = 业务金额+业务类型+业务执行时间

2.1.4反馈帐务信息=业务金额+业务类型+业务执行时间

2.1.5 IP地址数据=起始地址段+终止地址段。

2.1.5管理员帐务信息=用户名+姓名+出生日期+性别+身份证号+家庭住址+联系电话+电子邮件+存款金额。

2.2 文件条目(部分)

2.2.1 用户身份数据=用户名+密码+密码提示问题+密码提示答案+姓名+出生日期+性别+身份证号+家庭住址+联系电话+电子邮件+注册时间+存款金额

2.2.2 用户帐务数据= 金额 + 业务类型+ 执行时间

2.2.3用户帐务身份数据=用户名+密码+密码提示问题+密码提示答案+姓名+出生日期+性别+身份证号+家庭住址+联系电话+电子邮件+注册时间+存款金额+业务类型+ 执行时间

2.2.4 IP地址数据库=起始IP地址+终止IP地址。

在这里限于篇幅数据项条目和加工就不详细说明了。

四 系统设计

(一) 系统前台设计

本系统的前台是由ASP.net控件和HTML代码共同完成设计的,在C#.net的环境中,可以很方便的将web控件和html的代码加进页面。

根据上面所讲述的页面流程,我将一一展示用户所常用的页面

1 登陆页面

首先是登陆页面netbank.aspx如图4-1

由于页面过长的关系,该图片仅显示了重要的部分,页面上提供了本系统所提供的所有登陆和业务介绍。以及其它提供此项服务的银行网站链接。用户和管理员通过输入自己的用户名以及密码,选中相应的身份,点击"登录"后即可进入自己相关的页面。同时页面上提供了注册服务,当新用户有需要注册时,点击此按钮便可进去相关的服务。

主要按钮触发动作如下:

Btn_longin(登陆):点击后将用户名与密码记录下来,连接数据库后与数据库里与此用户名相同的条目信息中的密码作对比,如果相同进入用户通行证页面(userchoose.aspx);如果与密码不符,提示用户"密码不符" ;如果数据库中没有与用户输入的用户ID相同的条目,提示用户"该用户不存在" ;

Btn_zhuce(注册):点击后将页面转入注册服务(zhuce.aspx)

Btn_ forget(忘记密码):点击后将页面转入找回密码服务(findpassword.aspx)

2 注册页面

一个新的用户进入本系统时首先便是注册,这样才能得到本系统为其服务的权限,以下便是用户注册页面

zhuce.aspx 如图4-2所示

用户只需按照自己的身份信息按照页面上所提供的信息选项填写即可,所要说的只是当用户点击此页面时,系统已经为用户自动生成一个特定的不重复的用户名,即使用户对某用户名不满意时,只需要刷新一次页面,便可获得一个全新的用户名。用户需按照页面上所提供的要求进行填写。原因是数据库中有特定的要求,不得漏填。如果用户所填写的信息与本系统所要求的格式不相同,或者由没填的,本系统将返回并提示用户,当用户提交后,便将所有信息输入了用户数据库,并且进入用户通行证界面。

如下给出的代码是记录用户相关信息的记录集:

sb.Append("INSERT INTO [user]");

sb.Append("(user_id,user_pwd,user_pwdquestion,user_pwdanswer,user_name,user_sex,user_year,user_month,user_day,user_degreeid,user_mail,user_address,user_phone,user_logintime,user_money)");

sb.Append("VALUES({0},'{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}')");

values.Add(this.Session ["userid"]) values.Add(FormsAuthentication.HashPasswordForStoringInConfigFile(this.Request["tf_repassword"], "SHA1"));

values.Add(this.Request["tf_pwdqueston"]);

values.Add(this.Request["tf_pwdanswer"]);

values.Add(this.Request["tf_name"]);

if (rb_man.Checked ==true)

{

values.Add("男");

}

if (rb_wman.Checked == true)

{

values.Add("女");

}

values.Add(this.Request["dd_year"]);

values.Add(this.Request["dd_month"]);

values.Add(this.Request["dd_day"]);

values.Add(this.Request["tf_dgreeid"]);

values.Add(this.Request["tf_email"]);

values.Add(this.Request["tf_adress"]);

values.Add(this.Request["tf_phone"]);

values.Add(DateTime.Now);

values.Add("0");

sql = string.Format(sb.ToString(),values.ToArray());

3 通行证页面

下面介绍的是用户通行证界面,它的上级界面有两个,登录页面(netbank.aspx)和注册页面(zhuce.aspx),该页面主要提供系统为用户提供的所有服务的选择

Userchoose.aspx页面如图4-3所示

一目了然可以看到页面上提供了五项服务,

3.1 基本银行服务,即前文中所说的存取款业务

3.2 转帐业务业务

3.3 用户信息修改业务

3.4 密码修改业务

3.5 银行记录查询业务

本页面只有一些相关的链接,不包含任何函数

4 基本银行页面

从通行证页面直接通过链接进入到此页面,用户通过页面中的提示进行操作,需要声明的是在页面中本来应该有三个单选按钮,存款,本地取款和异地取款,这是为了保证该页面能够同时实现更多的功能

Basebank.aspx页面如图4-4所示

但是为了保证用户的存取款业务的本地和异地化,以及保证用户的自觉性。当用户属于本地时,页面上只显示存款和本地取款两个单选按钮,当用户身处异地使用本系统时,页面上仅仅显示存款和异地取款两个单选按钮。如图4-5所示

由于本人现在在数据库里所加入的IP地址段保证了本机IP在登陆时,一定是本地登陆,所以页面上只显示存款和本地取款者两个单选按钮

以下是对操作的介绍,当用户输入了所要操作的金额,这个输入必须是纯数字,这是符合逻辑的,如果用户有误输入,如字符等非纯数字等,系统将会向用户报错,提示用户"应该输入纯数字"并返回

Btn _tijiao(提交业务):点击后系统个人帐务数据库信息中读取用户以往的存款金额,符值给str_money(变量:暂存金额),将这个暂存金额加上(或减去)用户所提交的金额,(若异地区款再减去5元的服务费);继续存入str_money中。将此值updata到用户的存款金额数据库中。同时将此次交易的交易类型和交易金额以及交易时间记录到账务记录表中。

Btn_fanhui(返回):将页面转到用户选择页面(userchoose.aspx)

页面中还提供了其它页面的链接,正如所显示的,有:转帐业务,银行查询业务,用户信息修改业务和密码修改业务,这样用户就不需返回前一级页面儿可以直接进入到其它项进行操作的页面。

其他的定制服务 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

相关推荐
2401_857439691 小时前
SSM 架构下 Vue 电脑测评系统:为电脑性能评估赋能
开发语言·php
SoraLuna2 小时前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
开发语言·macos·ui·华为·harmonyos
xlsw_2 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
Dream_Snowar3 小时前
速通Python 第三节
开发语言·python
高山我梦口香糖4 小时前
[react]searchParams转普通对象
开发语言·前端·javascript
信号处理学渣4 小时前
matlab画图,选择性显示legend标签
开发语言·matlab
红龙创客4 小时前
某狐畅游24校招-C++开发岗笔试(单选题)
开发语言·c++
jasmine s4 小时前
Pandas
开发语言·python
biomooc5 小时前
R 语言 | 绘图的文字格式(绘制上标、下标、斜体、文字标注等)
开发语言·r语言
骇客野人5 小时前
【JAVA】JAVA接口公共返回体ResponseData封装
java·开发语言