基于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。交易信息包括扣款结果、金额和交易流水号;商户和商品信息同发送数据是一样的。交易结果返回的类型有两种:一个是交易成功回调(浏览器重定向);另一个是交易成功主动通知(服务器点对点通信)。
评论