基于ASP.NET的B2C在线支付接口设计

发布时间:2010-8-16 15:50    发布者:lavida
关键词: ASP , B2C , 接口设计 , 在线支付
随着社会经济的不断发展,人们的生活节奏不断加快,这使通过网络平台来实现支付交易成为一种需求。通过电子支付平台系统,既可以节约人工实际支付交易所耗费巨大的时间成本,又能保证交易的公平性、安全性和隐蔽性,给人们的生活带来极大的便利。然而一般商户如何使自己的电子商务系统与电子支付平台实现正确对接则是一项非常重要的技术,基于此设计了基于ASP.NET的B2C在线支付接口。  

1 在线支付的现状  

在线支付是指卖方与买方通过因特网上的电子商务网站进行交易时,银行为其提供网上资金结算服务的一种业务。  

在线支付,也称实时电子支付。这是电子商务必备的一个环节,缺少了在线支付就没有完全实现电子商务。在线支付就是由商家预先选择好在线支付平台服务商(如预置了包括贝宝、快钱、支付宝、首信、IPAY、NPS、网银等十多种主要的在线支付接口),跟支付平台签订服务协议,开通支付接口,由商家支付交易所产生的手续费,顾客在购买商品时就可以选择使用在线支付方式对所购买到商品进行付款。  

目前,大部分在线支付平台的在线支付接口已经应用到生活中的诸多方面,但某些支付接口还是有不足之处:  

(1)数据库无法实时共享。无法实现不同的人员,从不同的地点,以不同的接入方式同时访问和操作共同的数据库。  

(2)客户端的软、硬件配置要求复杂。往往使用此支付平台,下载了支付平台控件之后,在使用在线支付接*易时还需要进行软、硬件配置,给客户带来了诸多不便。  

针对上述不足,该接口选用了ASP技术进行编写,测试时可以在IIS应用目录下进行。  

2 应用ASP.NET的技术优势  

ASP.NET是微软公司于2000年推出的一种Internet编程技术,是面向下一代企业级的Web应用程序开发平台。它的执行方式是当Web服务器接收到一个对某ASP.NET页面的请求时,如果这是对该页面而创建后修改的第一次申请,首先把该页面内容编译成MSIL语言,然后MSIL再被编译成机器码加以执行。  

针对目前在线支付接口所表现出的一些缺点,ASP技术有自己的解决办法。  

(1)能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据库。传统Server/Client结构的应用,要求用户和服务器必须在同一网段上,而实际上用户有的跨地区、跨网段。这样传统Server/Client的应用就很难实现这种跨地区、跨网段的应用。应用ASP.NET实现的安全信息管理系统,不论用户在外地出差,还是在国外,只要有一台机器能上Internet,就能通过用户验证进入网络支付平台系统查询信息,用户不论是早上,还是晚上随时都可以通过用户验证使用该系统进行在线支付交易,给用户使用带来很大方便。  

(2)对客户端的软、硬件配置无特殊要求,只要客户端安装浏览器就可以通过网络查询信息。当系统需要升级时,应用传统Server/Client结构时,必须对所有客户进行升级,而应用ASP.NET实现的安全信息管理系统,开发人员只需对服务器程序进行升级,用户在不知不觉中就完成了软件的更新换代,这样既方便了用户,又方便了维护。  

3 接口的功能性需求  

支付服务的接口设计如图1所示,主要由支付接口、订单查询接口和订单退款接口3部分组成。  


  
(1)支付接口。通过支付请求文件发起支付请求,商家可以在此文件中写入自己的订单信息等,然后把请求提交给平台支付系统,待平台支付系统进行处理之后,交易成功回调(浏览器重定向),或者交易成功,后台主动通知(服务器点对点通信)以上一个浏览器重定向和一个主动通知都会通过HTTP协议以GET方式到商户回报URL地址上,如图2所示。  


  
商户需要发送的数据包括业务类型、商户信息、扣款金额、交易币种、商品信息、银行编码和签名数据HMAC。其中商户信息又包括商户代码、订单号、扩展信息及回报URL;商品信息则包括商品的ID、类别和描述。商户代码是系统给商户分配的惟一标识,而银行编码能自动转化为系统识别的银行ID。在用户填写商户订单号时,如果商户订单号为空,系统自动生成随机的惟一商户订单号。返回数据包括业务类型、交易信息、商户信息、商品信息、交易结果返回类型及签名数据HMAC。交易信息包括扣款结果、金额和交易流水号;商户和商品信息同发送数据是一样的。交易结果返回的类型有两种:一个是交易成功回调(浏览器重定向);另一个是交易成功主动通知(服务器点对点通信)。  

由于交易结果通知返回是无状态的,因此商户有必要在交易结果返回时进行一定的事务控制。  

(2)订单查询接口。商户通过订单查询接口发出查询请求,支付平台系统进行处理之后,能通过数据流方式返回查询结果。  

商户在发送数据时需要业务类型、商户代码及订单号、签名数据HMAC。查询返回的结果包括商户信息、交易信息、商品信息及签名数据HMAC。能帮助商户方便快捷地了解交易状态。  

(3)订单退款接口。当商户对交易不满意或出现其他一些原因时,同样可以通过订单退款接口发出退款请求,支付平台系统进行处理之后,能通过数据流方式返回退款结果。  

商户在请求退款时,发送的数据必须包括业务类型、商户代码、交易信息、退款说明。系统返回的数据包括业务类型、退款结果、交易信息。让商户对款项了解清晰。  

(4)安全协议简介。在接口设计中特别使用到了安全套接层(Secure Socket Layer,SSL)协议,它是由Netscape公司于1994年首先提出,并且开发成功的一个网络传输层安全通信协议,它的主要目的是在两个通信实体之间提供一个秘密且可靠地连结。安全套接层方法协议在网络上普遍使用,能保证双方通信时数据的完整性、保密性和互操作性,可在安全要求不太高时予以使用。它包括:  

握手协议 即在传送信息之前,先发送握手信息,以相互确认对方的身份。确认身份后,双方共同持有一个共享密钥。  

消息加密协议 即双方握手后,用对方证书(RSA公钥)加密一随机密钥,再用随机密钥加密双方的信息流,以实现保密性。  

由于被IE,NETSCAPE等浏览器所内置,实现起来非常方便。目前B2C网上的支付大多采用这种办法。因此这里采用的HMAC就是一种秘密的密钥验证算法。HMAC提供的数据完整性和源身份验证完全取决于秘密密钥分配的范围。如果只有发起者和接收者知道HMAC密钥,那么这就对两者间发送的数据提供了源身份验证和完整性保证。  

4 系统的软硬件环境  

运行ASP.NET应用程序,需要配置合适的运行环境。ASP.NET运行环境包括硬件和软件要求,其中,硬件要求主要包括CPU、内存、硬盘、显示器和光驱等,软件要求主要包括操作系统、浏览器、Internet信息服务器和.NET、Framework等。其硬件配置为:  

(1)CPU处理器。450 MHz Pentium Ⅱ级处理器,建议使用600 MHz Pentium Ⅲ级处理器。  

(2)内存。使用不同的操作系统,在运行ASP.NET应用程序时有不同的内存要求:  


  
(3)可用硬盘空间。系统驱动器要求900 MB的可用空间;安装驱动器要求3.3 GB的可用空间,可选的MSDN库文档另外需要1.9 GB的可用空间。  

(4)光盘驱动器。CD-ROM或DVD-ROM驱动器。  

(5)显示器。Super VGA(1 024×768)或更高分辨率的256色显示器。  

为了系统的正常运行,要求具备如下的支撑软件:  

IIS5.0(Windows2000),IIS4.0(WindowsWindowsNT4),IE5.5以上。.NET Framework SDK(.NET Framewor SDK是执行ASP.NET最关键的元件,可以到网站下载)。  

5 程序设计  

如图3所示,商户首先可以先在用户信息项目中详细填写自己的资料,全部完成之后点击确定,接着在订单管理项目中填写相应的交易信息,整理检查之后没有错误就可以点确认购买,完成交易了。  

下面一段程序是支付请求文件,通过该文件发起支付请求,商家可以在该文件中写入自己的订单信息等,然后把请求提交给系统。  




  
6 结 语  

该设计的初衷是希望帮助在线交易当事人(包括消费者、厂商和金融机构等),通过使用相关的电子技术手段,在互联网上进行货币支付或资金流转时,电子支付平台能提供更高效安全的服务。在之中还是有很多不完善之处,比如在交易信息以数据流的形式返回给商户的过程中,商户由于外部因素的干扰和影响往往无法即时进行交易而返回事务控制,因此可以增加设计程序,帮助商户进行具体而安全的交易返回事务控制,帮助商户将繁杂的控制简单化、高效化;对于整体的商户支付服务,也可以设计增加订单统计这个模块,帮助商户统计自己的历史订单汇总信息,特别是可以按时间段统计订单,分项整理,清晰明了。限于时间和技术的因素,该设计并没有涉及这些内容。
本文地址:https://www.eechina.com/thread-21589-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表