`
zhb8015
  • 浏览: 395808 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

MD5加密及第三方支付接口的技术比较

阅读更多

  要:第三方支付市场的发展前景乐观,但同时市场竞争也越来越激烈。随着第三方支付业务许可牌照的发放,第三方支付将很可能打破大型银行垄断电子金融的局面。本文将主要研究第三方支付的“网上支付接口”,比较分析各种不同的第三方支付接口的差异性。

关键词:电子支付 第三方支付 支付接口

 

电子支付是电子商务中重要的一个环节,其中第三方支付是电子支付的一种重要方式。随着第三方支付在网络交易中得到越来越广泛的使用,中国的互联网支付市场也得到发展迅速。根据Enfodesk易观智库数据报告显示,2010年中国第三方支付市场全年交易额达到11,342亿元,环比增长95%。同时,第三方支付市场依然保持较高的市场集中率,支付宝以49%的份额占据半壁江山,支付宝、财付通快钱Chinapay易宝支付五家企业占据整个市场的份额接近90%。根据《中华人民共和国中国人民银行法》等法律法规,中国人民银行制定了《非金融机构支付服务管理办法》,央行颁布《非金融机构支付服务管理办法》,通过申请支付牌照的方式把第三方支付企业正式纳入国家的监管体系下。2011年5月26日,中国人民银行发布公告称,已向国内27家单位颁发了首批非金融机构支付业务许可证。这27家机构包括支付宝、银联、财付通、快钱盛付通、汇付天下等。

本文认为,第三方支付市场的发展前景乐观,但同时市场竞争也越来越激烈。随着第三方支付业务许可牌照的发放,第三方支付将很可能打破大型银行垄断电子金融的局面。本文将主要研究第三方支付的“网上支付接口”,比较分析各种不同的第三方支付接口的差异性。

支付接口定义及实现

 1.1支付接口定义

从技术角度讲,支付接口就是第三方支付平台提供的一段代码,商务需要将该代码配置到自己的服务器上去,并设置一些相关的接口参数。那么当客户选择使用第三方支付时,支付信息就会转到第三方支付平台的服务器上运行。


图1 第三方支付接口示意图 

具体来看,使用支付接口完成的支付流程如下:

(1)持卡客户(买方)选购好商品后,网上商城(卖方)为持卡客户生成订单;

(2)持卡客户和第三方服务器建立连接,将账号信息与订单信息发给第三方;

(3)第三方服务器要求顾客进行订单确认,收到确认信息后与所支持的银行进行支付交易处理,得到银行的支付确认后授权给商家可以发货;

(4)网上商城通知持卡客户发货信息。


图2 第三方支付流程图(1.2支付接口实现

1.2.1实现条件

要实现接口,需要有一个网站、支付宝账户、支付宝的合作身份ID、安全校验码等。为了方便电子商务网站的集成,各支付网关在正式成为商家用户后,可下载ASP、.NET、JAVA等针对不同服务器类型的商务网站的集成接口程序。本文将分别以各种有代表性的第三方支付平台为例说明与JSP类型的电子商务网站的接口应用方法。

值得注意的是,参数简单的传过去是不行的,这些参数是经过了按一定排列顺序并区分大小写(参数为空也要传递)再加上一个MD5字符串。即使参数值为空字符串和没有传值也是有区别。

1.2.2实现过程

比如现在有一个页面要向第三方支付平台传递一个价格跟商品信息,则可以通过POST和GET两种方式传递进去。当第三方支付平台接收参数的同时,它还要判断身份,所以传递的时候身份信息也要一起传过去。当身份确认以后,第三方支付平台就开始处理商品信息跟价格信息了。无论消费者是否支付成功,它都会返回一个信息给消费者,这个返回页面就是第三方支付平台之前设置好了的,在这个返回页面里面写入相关的支付数据信息,这样就完成了一个简单支付接口。

2支付接口对比

目前市场上的第三方支付平台的运营模式可以将分为二种类型:独立的和非独立的第三方支付模式。(1)具备担保功能的非独立第三方支付模式,也称为信用中介型模式。该种运营模式,基本是由大型的电子交易平台独立开发或与其他投资人共同开发,凭借运营商的实力和信誉与各大银行合作,同时能够为买卖双方提供中间担保的第三方支付运营模式。这种模式的运营商主要是借助电子交易平台和中间担保支付平台与用户开展业务,在交易过中采用充当信用中介的模式,保证交易的正常进行。(2)独立的第三方网关模式,是指没有自己的电子商务交易网站,由第三方投资机构为网上签约商户提供围绕订单和支付等多种增值服务的共享平台。

根据第三方平台运营的两种模式,本文以非独立的第三方网关模式(支付宝)和第三方独立的网关模式(易宝)为比较对象,从开发环境、传递参数和安全性等三个方面进行比较分析。

2.1开发环境

在软件方面,为了方便电子商务网站的集成,各支付网关在用户正式成为商家用户后,都可以下载.NET、ASP、JAVA(JSP)、PHP等针对不同服务器类型的商务网站的集成接口程序。在硬件方面,基于高可靠硬件设备打造高性能平台,基于JAVA等语言开发高效安全的应用程序,系统采用分层架构,关键设备全部采用热备冗余,确保业务的不间断服务。

     2.  2传递参数

如在1.2.2小节中描述的支付实现过程,商家和第三方支付平台之间要通过支付接口传递一系列的购物信息,包括商品信息、用户信息等。本节将主要比较商家发送支付请求和商户接收支付完成数据的参数信息。

2.2.1商家发送支付请求相关参数

支付宝提供给商家的“发送支付请求”的接口参数共23项,易宝提供给商家的“发送支付请求”的接口参数共20项。请求参数信息(包括名称、含义、长度、是否为空、说明)不在本文做详细赘述,并将各种类型的信息进行分类描述,具体见表1。

 

交易信息

付完款后跳转的页面、交易过程中服务器通知的页面、防钓鱼时间戳、超时时间、字符编码格式、加密方式

订单信息

订单号、订单名称、订单描述、订单详细、订单备注、订单总金额、支付方式、网银代号

商品信息

展示网址

买家信息

买家支付宝账号、买家本地电脑的IP地址

卖家信息

卖家支付宝账号、合作ID、提成类型、提成信息集、安全校验码

其他信息

自定义参数

交易信息

交易签名串、请求命令、业务类型、是否需要应答机制、签名数据、交易请求地址、交易结果通知地址

订单信息

订单号、支付金额、交易币种、银行编号

商品信息

商品ID、名称、种类、描述

货运信息

是否需要填写送货信息

卖家信息

商户密钥、商户编号、商户扩展信息、退货地址

2.2.2商户接收支付完成数据的相关参数

支付宝提供给商家的“接收支付完成数据”的接口参数共10项,易宝提供给商家的“接收支付完成数据”的接口参数共18项。接收参数信息也不在本文做详细赘述,并将各种类型的信息进行分类描述,具体见表2。

 

交易信息

支付宝交易号、交易状态、验证状态、签名数据、通知任务ID

订单信息

订单号、订单金额

商品信息

商品标题、商品描述

买家信息

买家账号

交易信息

签名数据、业务类型、支付结果、易宝支付交易流水号、交易结果返回类型、支付成功时间、交易结果通知时间

订单信息

订单号、订单金额、支付金额、交易币种、银行编号、银行定单号

商品信息

名称、种类、描述

卖家信息

商户编号、商户密钥

 

从以上的支付请求参数表和支付返回参数表可以看出,虽然各种支付接口在参数的具体设置方面存在一定的差异,但是将各个参数进行分门别类之后,基本上都包括交易信息、订单信息、商品信息、买家信息、买家信息这五类信息。

本文由此认为,各种支付接口在传递参数的设置上存在一定的“同质化”现象。

2.3安全性能

系统安全体现在三个方面:系统层、应用层、运营层。(1)系统层平台部署有安全数据中心、防火墙、入侵检测等等多种安全设备,有专业的信息安全团队负责每天对系统进行安全分析;(2)应用层通过加密以及电子签名等多种身份鉴别、认证、访问控制以及安全变成等手段,力求将自产品逻辑设计和程序代码漏洞的风险降到最低;(3)运营层则利用自主开发的安全监控系统,对每笔交易进行实时监控,同时提供全天24小时的运营服务。本文节将主要从“应用层”来比较两种支付接口的安全性。

2.3.1参数加密算法

 

mysign = AlipayBase.BuildMysign(AlipayBase.ParaFilter(sPara), key)

把参数存入Map,将其中空值和签名参数除去;再按照“参数=参数值”的模式用“&”字符拼接成字符串,最后把拼接后的字符串再与安全校验码直接连接起来。

// MD5加密方法,key为支付平台发放给商户的“密钥”

Hmac = PaymentForOnlineService. getReqMd5HmacForOnlinePayment

(String messageType, String merchantId, String orderId, String amount, String currency,

String productId, String productCat, String productDesc, String merchantCallbackURL,

String addressFlag, String sMctProperties, String needResponse, String frpID, StringkeyValue)

// MD5-HMAC加密方法,keyValue为支付平台发放给商户的“密钥”

注意:参数简单的传递是不行的,参数是经过一定排列顺序并区分大小写再加上一个MD5字符串。

从以上的支付加密信息表可以看出,一方面,两种支付接口基本上都采用的是MD5加密算法,该算法有很高的安全性;另一方面,在加密参数的具体设置上都使用了由支付平台发放给商户的“密钥”。

本文由此认为,各种支付接口在加密算法的选择上也存在一定的“同质化”现象。

2.3.2链接安全性

本文通过一个具体支付实例,来具体分析链接的安全性。

https://www.alipay.com/payto:merchanttool@alipay.com?cmd=0001

&subject=%D9%AA%C2%DE%BC%CD%B9%AB%D4%B0

&body=I%2CII%2CIII+%BC%AF&order_no=zoo00001&price=100.00

&ordinary_fee=5.00&express_fee=10.00

&ac=4d5010376411f5042868f238e8613c9b

https://www.yeepay.com/app-merchant-proxy/trxData.action?

paymentId=363526768&date=20101120210158

&sign=7b3a57af221df17b33a4705c5b205b4f

从以上的支付链接信息表可以看出,易宝的链接安全性较高,而支付宝在链接中明显透露了支付费用的部分信息。本文由此认为,两种支付接口在支付信息的安全性上都做的较为到位,支付技术较为安全,消费者可以比较放心使用。当然,本文并不排除这里没有发现的其他一些安全隐患。

3 未来展望

综上所述,第三方支付接口在技术实现上存在很多“同质化”现象。本文认为,技术上的“同质化”将降低竞争力。第三方支付应该在进一步完善支付接口的同时,进行一定的“商业模式”创新,提高行业竞争力。据本文调研发现,类似从综合搜索到垂直搜索、从综合网站到行业网站的发展趋势,目前,第三方支付也走上了“市场细分”的道路,互联网支付细分市场已经成为战略竞争的重点。以支付宝、财付通等为代表的第三方支付厂商继续拓展公共事业缴费业务、航空客票等领域。易宝支付等则在电信、教育交费等领域另辟蹊径。本文认为,走市场细分道路固然能够开拓新的市场,但不能在本质上提高行业竞争力,今天的“蓝海”很可能成为明天的“红海”。

从第三方支付市场上的具体行为来看,早在2007年淘宝网就率先推出的“卖家先行赔付”机制,不失为一种可贵的商业模式创新,在客观上起到了确保消费者利益的作用。2011年3月15日前夕,中国工商银行联合深圳本土购物网站走秀网设立专项赔付基金,推出先行赔付服务。随着银行开始介入网购售后领域,第三方支付市场将会面临更多的外部竞争压力。

本文没有对“先行赔付”机制的现实成效进行深入研究,但可以肯定,“先行赔付”(甚至“先行全额赔付”)将成为未来网络支付市场非常重要的一项竞争力指标。

分享到:
评论

相关推荐

    第三方APP微信支付Java服务端构建完整步骤

    第三方APP微信支付Java服务端构建完整步骤 在本资源中,我们将详细介绍第三方APP微信支付Java服务端的构建步骤。微信支付是微信提供的一种在线支付方式,允许用户通过微信客户端进行支付。为了使用微信支付,需要在...

    全能第三方支付对接Java开发工具包.zip

    【标题】"全能第三方支付对接Java开发工具包.zip" 是一个专门为Java开发者设计的库,旨在简化与各种第三方支付平台的集成过程。这个工具包涵盖了常见的支付接口,如支付宝(Alipay)、微信支付(WeChat Pay)以及...

    aspx1财付通支付接口源码 v1.0_tenpay-md5-aspx.zip

    1. **财付通支付接口**:财付通是腾讯公司旗下的第三方支付平台,类似于支付宝,提供线上支付、转账、充值等服务。支付接口是电商网站与财付通服务器进行交互的桥梁,允许商家接收用户的支付请求,处理订单,并将...

    php 支付宝h5支付源码完整版

    商户私钥用于加密数据,只有对应的支付宝公钥才能解密,确保了信息不被第三方窃取。 - **MD5**:MD5是消息摘要算法,虽然不适用于加密,但常用于数据完整性校验。在支付过程中,可能会用MD5来校验请求参数的正确性,...

    最新先发信达付款PHP第三第四方支付源代码适用H5二维码支付微信收钱钱夹快捷支付功能.txt

    - **第三方支付**:指通过一个独立于买卖双方之外的第三方机构来完成资金托管及交易过程的服务模式。常见的第三方支付平台包括支付宝、微信支付等。 - **第四方支付**:又称为聚合支付或聚合服务提供商(PSP),它并...

    【站长亲测】第三方支付平台源码 商业支付源码 二开修复版

    在互联网金融领域,第三方支付平台扮演着至关重要的角色,它为商家和消费者提供了便捷、安全的在线交易解决方案。本文将深入探讨“第三方支付平台源码”的核心概念,并分析商业支付源码的实现原理,以及二开修复版中...

    PHP实例开发源码—最新php第三方支付平台源码(商业支付源码).zip

    首先,第三方支付平台的核心在于接口的集成与调用。这些源码可能包含了对接各大支付渠道(如支付宝、微信支付等)的API接口,如订单创建、支付验证、退款处理等。开发者需要熟悉各个支付平台的开放文档,了解其请求...

    自适应修复版第三方他方支付源码 含API聚合支付.zip

    在IT行业中,第三方支付源码是一个关键组成部分,它允许开发者集成支付功能到他们的应用程序或网站中,以便用户可以通过各种支付方式完成交易。本资源“自适应修复版第三方他方支付源码 含API聚合支付.zip”提供了...

    支付加密工具类源码

    学习和理解这些加密工具类源码有助于开发者更好地集成第三方支付服务,确保交易过程的安全性。同时,了解不同支付平台的加密机制也能帮助开发者应对可能出现的安全问题,比如防止中间人攻击、保护用户隐私等。对于...

    springboot+Thymeleaf+MD5加密前后端分离,米尚商城项目,可用于(毕业设计).zip

    商城系统通常需要集成第三方支付平台,如支付宝、微信支付,实现在线支付功能。这涉及到与支付平台的API对接,处理回调通知,确保交易安全和准确。 10. **部署与运维** 项目完成后,需要考虑部署和运维问题,如...

    拉卡拉支付接口.zip

    拉卡拉支付接口是一种集成在C#.NET平台上的第三方支付服务,允许开发者通过API调用来实现在线支付功能。本文将深入探讨拉卡拉支付接口的使用、原理以及如何在C#.NET环境中进行集成。 首先,拉卡拉作为中国知名的第...

    在线支付模块

    在设计这样的模块时,通常会结合第三方支付平台和MD5加密技术来确保交易的安全性和数据完整性。 首先,第三方支付平台是指由独立于买卖双方的金融机构提供的一种支付服务。常见的第三方支付平台有支付宝、微信支付...

    快钱支付接口

    快钱作为国内领先的独立第三方支付企业之一,自成立以来一直致力于为企业和个人提供全面、安全、便捷且保密的电子支付解决方案。通过不断创新和发展,快钱已经能够提供种类繁多的支付工具和服务,包括但不限于人民币...

    利用第三方Dll,实现delphi 7 微信/支付宝支付

    5. **参数处理与加密**:支付接口通常要求对参数进行特定的格式化和加密,如JSON字符串、Base64编码或MD5签名。在Delphi中,你需要了解并实现这些数据处理方法。 6. **用户界面设计**:创建支付界面,展示支付选项...

    网上支付接口的实现

    网上支付接口是指电子商务系统与第三方支付平台之间进行数据交互的技术接口。通过该接口,用户可以安全地完成在线支付过程。一个典型的网上支付流程包括以下几个步骤: 1. **用户选择商品**:在电商平台选购商品后...

    asp支付宝支付接口(绝对可用!!)

    支付宝,作为中国最知名的第三方支付平台之一,提供了多种API和SDK供开发者集成到自己的网站或应用中。由于官方文档可能主要针对PHP、Java、.NET等主流开发语言,对于ASP这种相对较少使用的语言,可能会缺乏直接的...

    支付宝支付接口服务端DEMO

    5. **验签**:在接收支付宝的回调通知时,服务端需要验证签名的有效性,以确认消息来自支付宝,未被第三方篡改。验签过程包括解密签名并重新计算签名,对比两者的匹配度。 6. **订单状态管理**:DEMO中应包含订单...

    asp.net开发的财付通支付接口

    首先,财付通是中国领先的第三方支付平台,由腾讯公司创办,它提供了多种支付方式,包括银行卡支付、快捷支付、微信支付等。在ASP.NET中开发财付通支付接口,主要涉及以下几个关键步骤: 1. **申请商户账号**:首先...

Global site tag (gtag.js) - Google Analytics