电子商务网站网上支付原理简析
一个电子商务网站要开通网上支付功能,有两种途径:一是通过第三方支付平台,例如支付宝、网银等;二是与银行协商获得一个支付接口。前一种方式以支付宝为例,商户可以向支付宝提交申请,申请成功后支付宝会提供一个整合支付宝到商户网站的接口并提供该接口的调用方法及示例。这种网上支付方式手续简单,支付宝向商户收取的费用是按商户网站通过支付宝完成的交易额按一定比例来收取的。后一种方式需要和开通网上支付功能的银行签署协议,办理相关手续,之后银行会提供给商户一个商户编号,商户在其网站把商户编号和支付信息等内容提交给银行提供的处理系统就可以了。
各个银行的接口处理方式基本思维都是差不多,商户向银行申请后将获得一个商户编号,就可以在自己的网站提供在线支付功能了,银行会向商户提供数据提交的地址和处理结果获取的地址及相关参数和调用方法的说明文档等。
下图是网上支付方案的流程图,支付网关实际表现形式其实就是银行提供的一个供数据提交的网址,之后这些数据被转到银行银行的后台系统处理。商户的网站需要做的就是按照银行提供的订单数据规范提交到支付网关即可。
中国工商银行网上支付流程:
1、客户在商户网站浏览商品信息,签订订单;
2、商户按照工行B2C订单数据规范形成提交数据,并使用工行提供API和商户证书对订单数据签名,形成form表单返回客户浏览器,表单action地址指向工行接收商户B2C订单信息的servlet;
3、客户确认使用工行支付后,提交此表单到工行;
4、工行网银系统接收此笔B2C订单,对订单信息和商户信息进行检查,通过检查则显示工行B2C支付页面;
5、客户在此页面可以查询客户在银行的预留信息;也可以输入支付卡号、支付密码、验证码进行B2C支付;
6、工行检查客户信息,通过检查后显示确认页面;客户确认提交后工行进行支付指令处理;
7、工行进行支付指令处理后,如果商户需要工行实时通知,则工行将处理结果使用http协议post方式将通知消息数据提交到商户网站(这个接收银行通知消息的商户端地址是随商户订单数据提交银行的merURL字段),商户返回取货地址或关闭这个银行与其建立的连接后,银行才显示交易结果页面给客户。(注意1、发送通知和显示结果页面是串行的,所以商户端接收银行通知处理时间太长可能导致客户等待超时,造成银行不能将交易结果页面显示给客户。2、此连接是银行服务器自动和商户进行的连接,商户返回也是直接返回给银行,商户端不能对银行的这个请求进行重定向。)
8、工行进行支付指令处理后,如果商户不需要工行实时通知,则工行直接显示交易结果给客户。
网上支付接口技术文档:
工商银行网上支付
http://blog.csdn.net/owenbian/archive/2007/04/29/1591492.aspx
招商银行接口
http://bbs.00000008.com/ShowPost.asp?ThreadID=2557
建设银行接口
http://d.download.csdn.net/source/434631
网银在线商家申请
http://www.chinabank.com.cn/gateway/register.shtml
网银在线支付接口
http://www.bloghome.cn/download.php?fileId=4579&userId=153399
支付宝接口源代码
http://blog.csdn.net/xykwgjyygy/archive/2008/03/12/2173033.aspx
支付宝商家申请
https://www.alipay.com/cooperate/btools_shop.htm
第三方支付平台原理:其实这些平台所做的只不过是把各个银行的支付网关都整合在一起,用户在支付的时候不再是只能选择单一支付银行,而是可以有多种选择。当然,像支付宝的话和银行合作紧密,其网上支付中介功能也是很丰富的。