网银在线支付接口和应用
- 格式:docx
- 大小:46.26 KB
- 文档页数:13
目前互联网上在线支付接口种类很多,不过常见在线支付接口就这几种:1、支付宝支付接口集成;支付宝支付接口集成是指支付宝支付平台接口程序与你的商务网站无缝整合,从而让你的网站立即拥有在线收款的功能。
根据你的网站脚本和结构加以整合,经编程到调试成功。
2、财付通支付接口集成;财付通支付接口集成是指财付通支付平台接口程序与你的商务网站无缝整合,从而让你的网站立即拥有在线收款的功能。
财付通构建全新的综合支付平台,业务覆盖B2B、B2C和C2C各领域,提供卓越的网上支付及清算服务。
针对个人用户,财付通提供了包括在线充值、提现、支付、交易管理等丰富功能;针对企业用户,财付通提供了安全可靠的支付清算服务和极富特色的QQ营销资源支持。
客户在你的网站上支付后,钱款自动计入你网站上该客户对应的账户上,实时到账,方便快捷。
3、快钱支付接口集成是指快钱支付平台接口程序与你的商务网站无缝整合,从而让你的网站立即拥有在线收款的功能。
快钱公司是目前国内领先的独立第三方支付企业,最早推出基于Email和手机号码的综合电子支付服务,拥有千万级注册用户。
使用快钱在线支付后,钱款自动计入您的境网互联会员ID账户上,实时到账,简单快速便捷。
客户在你的网站上支付后,钱款自动计入你网站上该客户对应的账户上,实时到账,方便快捷。
4、网银在支付接口集成是指网银在线支付平台接口程序与你的商务网站无缝整合,从而让你的网站立即拥有在线收款的功能。
网银在线(北京)科技有限公司是2003年6月在中关村注册的高新技术企业,注册资金1000万人民币。
自成立以来,凭借强大的技术实力和良好的服务理念,以“电子支付专家”为发展定位,联合中国银行、中国工商银行、中国农业银行、中国建设银行、招商银行等国内各大银行,以及VISA、MasterCard、JCB等国际信用卡组织,致力于为国内中小型企业提供完善的电子支付解决方案。
客户在你的网站上支付后,钱款自动计入你网站上该客户对应的账户上,实时到账,方便快捷。
中国工商银行网上银行B2C在线支付接口说明一、B2C流程说明:1、客户在商户网站浏览商品信息,签订订单;2、商户按照工行B2C订单数据规范形成提交数据,并使用工行提供API和商户证书对订单数据签名,形成form表单返回客户浏览器,表单action地址指向工行接收商户B2C订单信息的servlet;3、客户确认使用工行支付后,提交此表单到工行;4、工行网银系统接收此笔B2C订单,对订单信息和商户信息进行检查,通过检查则显示工行B2C支付页面;5、客户在此页面可以查询客户在银行的预留信息;也可以输入支付卡号、支付密码、验证码进行B2C支付;6、工行检查客户信息,通过检查后显示确认页面;客户确认提交后工行进行支付指令处理;7、工行进行支付指令处理后,如果商户需要工行实时通知,则工行将处理结果使用http协议post方式将通知消息数据提交到商户网站(这个接收银行通知消息的商户端地址是随商户订单数据提交银行的merURL字段),商户返回取货地址或关闭这个银行与其建立的连接后,银行才显示交易结果页面给客户。
(注意1、发送通知和显示结果页面是串行的,所以商户端接收银行通知处理时间太长可能导致客户等待超时,造成银行不能将交易结果页面显示给客户。
2、此连接是银行服务器自动和商户进行的连接,商户返回也是直接返回给银行,商户端不能对银行的这个请求进行重定向。
)8、工行进行支付指令处理后,如果商户不需要工行实时通知,则工行直接显示交易结果给客户。
二、B2C接口数据说明:接口数据格式定义通过接口名称和接口版本号来标识,以便将来的扩展;以下数据格式为“1.0.0.1”版的“ICBC_PERBANK_B2C”接口定义。
2.1 B2C商户提交表单接口定义:其他同1.0.0.0版本2.2 商户提交表单签名merSignMsg格式:1、组织要签名的数据串(顺序固定;被商户签名的串为各输入项的值):接口名称的值+接口版本号的值+商城代码的值+商城账号的值+通知地址的值+通知类型的值+订单号的值+订单金额的值+支付币种的值+结果发送类型的值+交易日期时间的值+校验联名标志的值2、举例:以下是需要签名的数据名称及对应值interfaceName=ICBC_PERBANK_B2C&interfaceVersion=1.0.0.0&merID=0200EC20000012&merAcct=0200029109000030106&merU RL=/servlet¬ifyType=HS&orderid=000000001&amount=100 &curType=001 &resultType=0&orderDate=20050801192556& verifyJoinFlag=0需要签名的明文ICBC_PERBANK_B2C1.0.0.00200EC200000120200029109000030106.c n/servletHS0000000011000010200508011925560签名后(用测试私钥user.key )merSignMsg为SFVdS3Kca6d/wetLFwynBl1q5nDIyxxEUXCzniIa47mhxs1BM9mPsnRc2lOqqrfwBdwBjSE82jS/iBHYKol f2sppjEyOImVZycv96321QPDgPA1yleO83K1XA1rmB3zxsIuwLKIICSWwdttn1XPYOQLJ/WAtZ5DFYFog7J 8pXw0=merCert为(用测试证书user.crt)MIICVjCCAb+gAwIBAgIKI9fKEDP6AAAO3DANBgkqhkiG9w0BAQUFADA0MRgwFgYDVQQDEw9wYmouaWNiYy5 jb20uY24xGDAWBgNVBAoTD3Biai5pY2JjLmNvbS5jbjAeFw0yMDA5MjAwOTI3NDFaFw0yMTA5MjAwOTI3ND FaMEMxGDAWBgNVBAMTD2JpYW5sdTIyLmUuMDIwMDENMAsGA1UECxMEMDIwMDEYMBYGA1UEChMPcGJqLmljY mMuY29tLmNuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDG+u/C5pad0ZbwvAk9Gv1rr+SpknfFUsTM hJLcI2KiYa+XLSf5vCib0OclOoDDXKIWPt/hkMEz+ED8YukQpsstXHvnxVFxVtPh23dubQjB8/kJ7X5Ebwn gsHMLFEXqr3UvNfcGZHuAFqMRPtr8ys3YnL3UG43Xienc3cD8jXFdQQIDAQABo2AwXjBLBgNVHR8ERDBCME CgPqA8pDowODEOMAwGA1UEAxMFY3JsMTMxDDAKBgNVBAsTA2NybDEYMBYGA1UEChMPcGJqLmljYmMuY29tL mNuMA8GA1UdYwQIAwYA/wAAAAAwDQYJKoZIhvcNAQEFBQADgYEAQe6tLhKaNX8OPNT2XzH7dTXIFmTm37hS vmbEL/Q/pWV386KVrNSCnyN3fowanMt5TE9qZFn9enVvyDJw4nAUx38F2PFn2Tt7JUtzt/pNKC5FiebpFJH 48AXIP1Xt5GjdcBx0oXM9QNBtYvY0189t357EH4UaBfO+c+L8fkOt37o=2.3 B2C通知商户交易结果接口定义:1.0.0.1版本(注意与C2C通知接口定义变量名区分)2.4 通知消息银行签名数据signMsg格式:1、组织要签名的数据串(顺序固定;银行通知消息签名的串为以下格式,请注意与商户签名串的格式不同):接口名称=值&接口版本号=值&订单号=值&指令序号=值&订单金额=值&支付币种=值&商城代码=值&商城账号=值&校验联名标志=值&客户联名标志=值&联名会员号=值&结果发送类型=值&交易日期时间=值&返回通知日期时间=值&订单处理状态=值&错误描述=值&备注1=值&备注2=值interfaceName=值&interfaceVersion=值&orderid=值&TranSerialNo=值&amount=值&curType=值&merID=值&merAcct=值&verifyJoinFlag=值&JoinFlag=值&UserNum=值&resultType=值&o r d e r D a t e=值&n o t i f y D a t e=值&t r a n S t a t=值&c o m m e n t=值&r e m a r k1=值&remark2=值举例:以下是需要验签的数据串明文interfaceName=ICBC_PERBANK_B2C&interfaceVersion=1.0.0.0&orderid=000000001&TranSeria lNo=&amount=100&curType=001&merID=0200EC20000012&merAcct=0200029109000030106&verify JoinFlag=0&JoinFlag=&UserNum=&resultType=0&orderDate=20050801192556¬ifyDate=2005 0824165910&tranStat=2&comment=failure,Error_code:32147ErrorMsg:提交支付表单时间数据不在有效时间范围。
中国工商银行网上银行网上支付接口规范B2C支付接口v1.0.0.3Copyright Reserved名目第1 章业务讲明2第2 章商户接口52.1 支付接口52.1.1 支付接口表单定义5 2.1.2 tranData数据定义6 2.1.3 tranData格式定义82.1.4 表单样例92.2 通知接口112.2.1 通知接口表单定义112.2.2 notifyData数据定义112.2.3 notifyData格式定义122.2.4 表单样例132.3 讲明14第3 章安全API讲明15第4 章开发步骤15业务讲明B2C在线支付接口实现工行个人网银客户在工行B2C商户网站进行消费支付的业务处理。
新的1.0.0.3版本同原先版本的要紧区不在于通知消息方式的改变。
原1.0.0.0版本和1.0.0.1版本(扩充语言字段以支持英文版)在订单中要求商户选择通知方式,即1、需要银行通知交易结果,2、不需要银行通知交易结果而是商户主动查询;当需要通知时,需要在订单中提供商户接收银行通知地址,当银行处理终止后,会在银行的后台服务器要求商户的此地址,将交易结果用http连接post表单形式提交给商户,然后返回客户交易结果页面。
新的1.0.0.3版本不再要求商户选择通知方式,和接收银行通知的地址;此版本要求商户在提交订单时,提供交易处理后返回商户的地址,即完成客户从商户转向到银行进行支付,处理后又从银行定向回商户网站的闭环。
在从银行交易页面返回商户时,将交易结果作为表单数据提交到商户此返回地址。
处理的优点:2、无需银行后台发送通知,客户不需要等待商户接收银行通知后才能看到交易结果页面,缩短响应时刻;143htt ps结果页面,如果还显现掉单咨询题,则可能是客户和商户的通讯等方面的以下简述处理流程:客户客户在商户网站扫瞄商品信息,签订订单;商户按照工行B2C支付1.0.0.3接口形成提交数据,并使用工行提供A PI和商户证书对订单数据签名,形成form表单返回客户扫瞄器,表单acti on地址指向工行接收商户订单信息的servlet;客户确认使用工行支付后,提交此表单到工行;工行网银系统接收此笔订单,对订单信息和商户信息进行检查;通过检查则显示工行支付页面,1.0.0.3版本会提示客户输入交易卡号;客户输入后提交;银行查询客户有关信息;返回客户在银行的预留信息;客户确认;返回交易确认页面;不同类型客户使用各自认证方式进行交易确认,支持静态支付密码、动态口令卡、证书签名;银行校验后进行支付处理;将结果形成通知消息并有银行端签名信息,返回客户端;引导客户返回商户网站,地址是订单中提供的商户url,此url支持htt p和https及自定义端口;B2C在线支付接口版本讲明:1.0.0.0(差不多支付)1.0.0.1(支持英文界面)1.0.0.2(内部保留)1.0.0.3(保留1.0.0.1功能,优化通知方式)1.0.0.4(商户订单中指定支付卡,不强制使用e卡支付,不承诺客户的支付卡透支支付,专门用于基金商户进行基金直销业务,同1.0.0.3通知方式)通知消息模式区不:原有模式:支付处理后,后台发送商户通知;新增模式:支付完成后或客户点击“返回商户”,利用客户扫瞄器跳转,完成商户通知的转发,后台不再单独发送商户通知。
我国的第三方支付平台以及各自的特点我国目前主要的第三方支付平台有支付宝、贝宝、财富通、99bill-快钱、网银在线、首信易支付、云网、环讯IPS等等。
xx的特点:xx的操作流程:买家选购满意的商品——买家付款到支付宝——支付宝通知卖家发货——卖家发货给买家——买家验收货物后通知支付宝付款——支付宝付款给卖家。
xx的功能:除了支付,xx还有以下功能:1、查看与自己交易的对方的支付宝信用情况。
2、计算器功能,在AA收款的页面中添置了一个“计算器”。
3、在“我的支付宝”中有账户明细查询功能,里面还有EXCEL表格下载功能,账目进出一目了然。
4、有多个收货地址并不需要每次更改都重新设置,可以将最常用的3个同时添加,根据情况进行选择。
xx的特点:(1)贝宝(PayPal)和信用卡、银行借记卡一样可以实现网上支付,并且不必逐个熟悉每个银行不同的支付政策,也不用一家银行地办理网络银行手续,甚至不用考虑什么安全证书之类烦人的事情(2)贝宝不仅是一种在线支付方式,也可以用作在线销售的收款手段,这样可以方便持有不同银行卡的用户实现在线支付;(3)方便贝宝用户之间的在线交易,由于用户使用同一个“网络银行”,遵循同样的协议,用起来自然放心多了,也可以增加用户之间的信任,因为在不同银行之间转账汇款是比较麻烦的事情,不仅完成交易的时间较长,而且银行手续费用也比较高;(4)无论个人在线付款还是商家收款,通过贝宝实现均无需泄漏个人信用卡/银行卡帐号信息,对于保护个人信息安全。
xx的功能:提供网上转账、网上支付、在线销售收款等网络银行相关的服务。
贝宝相当于各个银行委托的网络银行业务代理人,用户可以把各个签约银行卡的资金转入贝宝账户,通过贝宝可以方便地向持有其他银行卡的用户转账付款,或者网上销售时作为收款工具,当然,也可以随时从自己贝宝账户中将资金转到自己的银行卡账户中。
财富通的功能与特点:财付通是腾讯公司创办的中国领先的在线支付平台,致力于为互联网用户和企业提供安全、便捷、专业的在线支付服务。
在线支付标准
在线支付的标准涉及到多个方面,具体如下:
1. 应用范围:在线支付是一种通过第三方提供的与银行之间的支付接口进行支付的方式。
这种支付方式可以直接将资金从用户的银行卡中转账到网站账户中,不需要人工确认。
对于支付货款的一方,在线支付不会产生任何费用,交易费用由收款帐户所属的商家承担。
在线支付的方式包括网银支付和第三方支付等。
2. 流程:客户接入因特网,通过浏览器在网上浏览商品,选择货物,填写网络订单,选择应用的网络支付结算工具,并且得到银行的授权使用,如银行卡、电子钱包、电子现金、电子支票或网络银行账号等。
客户机对相关订单信息,如支付信息进行加密,在网上提交订单。
商家服务器对客户的订购信息进行检查、确认,并把相关的、经过加密的客户支付信息转发给支付网关,直到银行专用网络的银行后台业务服务器确认,以期从银行等电子货币发行机构验证得到支付资金的授权。
以上内容仅供参考,如需更多信息,建议查阅在线支付相关书籍或咨询专业人士。
各类支付通道大全三方支付通道选择最近参与对接了公司接入第三方支付的工作,于是整理输出了一套比较宏观的支付体系模型,希望对刚接触支付的朋友们有一些帮助。
1.支付渠道支付渠道,顾名思义就是平台上支持用户支付的通道,这些支付渠道帮助平台用户完成交易金额的支付,并且支持平台与银行之间进行资金流转、对账和清分。
比如:微信、支付宝、通联、易宝等。
一般交易平台都会对接多家支付渠道公司。
(1)第三方支付对于目前的市场情况来说,首先而且必选的第三方支付渠道就是支付宝和微信支付。
这两种支付渠道几乎占据了在线支付第三方渠道的90%以上的市场份额,并且这两个渠道支持各种业务的平台,对接的银行非常多,性能和稳定性都非常高。
(2)银联银联作为第三方的支付渠道,为平台对接银行起到非常大的帮助作用。
平台对接银联的支付渠道后(快捷支付),用户在平台消费时需要绑银行卡,首次需要上传银行卡号、手机号、身份证号码,银行卡绑定后,后续的操作步骤会相对便捷一些,只需在每次支付时输入密码即可。
后续的支付扣款流程跟其他第三方支付一样需要内嵌SDK,而是都在服务端完成校验。
(3)银行截止到2015年底,我国银行业金融机构包括6家大型的商业银行、12家股份制商业银行、133家城市商业银行和5家民营银行等1000多家银行。
其中首选的就是5家商业银行,其累计占40%的交易量,其次就是各种股份制银行和邮政储蓄银行等。
一般情况下,对接一个银行的话预期需要2-3周的工作量,不同银行对接入环境有不同要求,这也是成本。
比如:大部分银行需要专线接入,费用和带宽有关,一年也得几万费用。
(4)第四方支付第四方支付是相对第三方而言的,作为对第三方支付平台服务的拓展。
第三方支付介于银行和商户之间,而第四方支付是介于第三方支付和商户之间,没有支付许可牌照的限制。
第四方支付集成了各种三方支付平台/合作银行/合作电信运营商/其他服务商接口,也就是说集合了各个第三方支付及多种支付渠道的优势,能够根据商户的需求进行个性化定制,形成支付通道资源互补优势,满足商户需求,提供适合商户的支付解决方案。
网银在线支付接口和应用关键字: 网银在线支付接口和应用最近关注项目中在线支付,所以看一下文档,在线支付应用开发:基本所有的在线支付均采用以下方式:客户点击结帐时将关于訂單的信息和货币信息,相应的信息URL,经过md5或其他方式发送(可能Socket和Http或Https)支付平台(块钱,paypal或支付宝等),支付平臺处理完毕时根据相应URL,返回相关的信息(付款信息,訂單信息,验证信息).在实际操作Money的问题人们一向关注他的安全性等问题,同时本人习惯在通过http方式访问非外网时采用Commons-httpclient的post发送实现,简单方便,所以采用此种实现:具体看以下API和原代码:网银在线支付API接口:商户>>>>>>网银在线支付:<form method=post action=""><input type=hidden name=v_mid value="1001"> 商户编号<input type=hidden name=v_oid value="-000001234"> 订单编号<input type=hidden name=v_amount value=""> 订单总金额<input type=hidden name=v_moneytype value="0"> 币种<input type=hidden name=v_url value="">支付动作完成后返回到该url,支付结果以POST方式发送<input type=hidden name=v_md5infovalue="1630DC083D70A1E8AF60F49C143A7B95"> 订单MD5校验码<input type="hidden" name="remark1 " value="">备注字段1<input type="hidden" name="remark2" value="">备注字段2<input type=hidden name=v_rcvname value="张三"> 收货人姓名<input type=hidden name=v_rcvaddr value="北京海淀"> 收货人地址<input type=hidden name=v_rcvtel value=""> 收货人电话<input type=hidden name=v_rcvpost value="100036"> 收货人邮编<input type=hidden name=v_orderstatus value="0"> 商品信息<input type=hidden name=v_ordername value="李四"> 订货人姓名<input type=hidden name= v_orderemail value=""> 订货人邮件<input type=submit value="网银在线支付"></form>MD5校验串生成方法:当消费者在商户端生成最终订单的时候,将订单中的v_amount v_moneytype v_oid v_mid v_url key六个参数的value值拼成一个无间隔的字符串(顺序不要改变)。
电子支付知识:支付网关的概念和功能介绍随着电子商务的发展,电子支付已经成为人们生活中必不可少的一部分。
作为电子支付中一个重要的组成部分,支付网关扮演着很重要的角色。
本文将围绕着支付网关的概念和功能进行介绍,从中探讨支付网关在电子支付中的重要性。
一、支付网关的概念支付网关是指一种互联网支付平台,是连接电子商务商家和付款银行之间的一种交易处理系统。
简单来说,就是承担着在线支付服务的中间商角色,连接着消费者、商户、银行和支付系统等各方,实现在线支付的安全快捷。
二、支付网关的功能支付网关作为互联网支付平台,其功能也是非常强大的。
主要包括以下几方面:1.支付集成管理功能支付网关可以实现多个支付接口,可同时支持多种支付方式,如网银支付、银联支付、支付宝、微信支付等等。
帮助商家简化接口对接和支付方式的多样性,提高客户支付体验。
2.交易管理功能支付网关不仅可以管理商家端的交易管理,还可以通过交易管理的功能,对消费者的交易进行跟踪,监控交易的流程状态。
有效预防欺诈风险及交易争议。
3.订单状态实时查询支付网关还有一个非常重要的功能,就是可实现支付与订单状态的实时同步。
当客户完成支付之后,商家可以通过支付网关实时查询到订单状态,以确保交易数据的准确深入,保证订单及时处理。
4.风险评估和防范功能支付网关在支付安全方面,通过对用户身份、设备、支付行为等多方面进行风险评估,来判断是否有风险,并通过防范欺诈的方法降低商家的风险。
5.资金结算和结算风险控制支付网关可以自动完成支付交易的资金清算,确保订单的资金可以正常结算。
同时,支付网关还可以对资金结算过程进行风险控制,防止资金流动的安全性。
6.支持多种货币支付不同国家和地区的消费者,在进行支付时需要使用不同的货币。
支付网关可以支持多种货币支付,方便不同国家和地区消费者的支付。
7.数据统计分析支付网关可以对商家的在线交易进行数据统计分析,对消费者的交易行为进行分析,提供决策数据。
我国网上支付方式及应用领域我国网上支付方式及应用领域2010-07-29 00:03经过十多年的发展,电子商务的发展已慢慢走上了轨道。
2009年以后,电子商务将受益于十大振兴规划,发展将更加迅猛。
作为电子商务四大环节之一的电子支付也必将得到更好的发展。
网上支付作为电子支付的主要形式也将有所进步。
1、网上支付IResearch艾瑞咨询即将推出的《2009-2010年中国网上支付行业发展报告》统计指出,2009年,中国网上支付市场规模将达5766亿元人民币,相比2008年的2743亿元增长110.2%。
网上支付交易额连续五年增速超100%。
由此可知我国的网上支付市场前景十分广阔。
网上支付作为电子支付主要形式,是在互联网的基础,利用银行所支持的某种数字金融工具,实现从买方到金融机构再到卖方之间的在线货币支付、现金流转、资金清算以及查询系统等过程。
相对于电子支付的其它形式,网上支付具有的优势有:①打破了时空的限制,能在不同国家,不同时间和不同人完成资金结算;②支付成本低,手续简便。
资金结算通过账户到账户的数字转移,完成结算功能。
②周期短。
网上支付通过互联网大大节省了时间;④信誉度高。
提供网上支付的机构拥有良好的社会地位和信誉作为资金结算的保证:5.满足不同客户的各种个性化需求。
1.1网上支付的分类根据提供网上支付的机构不同,网上支付分为银行网上支付、银联网上支付、第三方支付。
1.1.1银行网上支付网上银行是指银行利用Internet技术,通过Internet向客户提供开户、销户、查询、对账、转账、信贷、投资理财等传统服务项目,使客户可以足不出户就能够安全便捷地管理银行中的资金。
网上银行就是Internet上的虚拟银行柜台。
目前,我国大多数银行大力推广网上银行,并将网上支付作为网上银行的新亮点。
这将对第三方支付产生一定的冲击。
具体支付流程:在交易中,买卖双方确定交易与发货方式后,买方通过银行直接把货款打到卖方账户上,卖方直接到银行提款。
网银在线支付接口和应用(转载)关键字: 网银在线支付接口和应用最近关注项目中在线支付,所以看一下文档,在线支付应用开发:基本所有的在线支付均采用以下方式:客户点击结帐时将关于訂單的信息和货币信息,相应的信息URL,经过md5或其他方式发送(可能Socket和Http或Https)支付平台(块钱,paypal或支付宝等),支付平臺处理完毕时根据相应URL,返回相关的信息(付款信息,訂單信息,验证信息).在实际操作Money的问题人们一向关注他的安全性等问题,同时本人习惯在通过http方式访问非外网时采用Commons-httpclient的post发送实现,简单方便,所以采用此种实现:具体看以下API和原代码:网银在线支付API接口:商户>>>>>>网银在线支付:<form method=post action="https:///select_bank"> <input type=hidden name=v_mid value="1001"> 商户编号<input type=hidden name=v_oidvalue="19990720-1001-000001234"> 订单编号<input type=hidden name=v_amount value="13.45"> 订单总金额<input type=hidden name=v_moneytype value="0"> 币种<input type=hidden name=v_url value="http://domain/program">支付动作完成后返回到该url,支付结果以POST方式发送<input type=hidden name=v_md5infovalue="1630DC083D70A1E8AF60F49C143A7B95"> 订单MD5校验码<input type="hidden" name="remark1 " value="">备注字段1<input type="hidden" name="remark2" value="">备注字段2<input type=hidden name=v_rcvname value="张三"> 收货人姓名<input type=hidden name=v_rcvaddr value="北京海淀"> 收货人地址<input type=hidden name=v_rcvtel value="68475566"> 收货人电话<input type=hidden name=v_rcvpost value="100036"> 收货人邮编<input type=hidden name=v_orderstatus value="0"> 商品信息<input type=hidden name=v_ordername value="李四"> 订货人姓名<input type=hidden name= v_orderemail value="test@"> 订货人邮件<input type=submit value="网银在线支付"></form>MD5校验串生成方法:当消费者在商户端生成最终订单的时候,将订单中的v_amount v_moneytype v_oid v_mid v_url key六个参数的value值拼成一个无间隔的字符串(顺序不要改变)。
参数key是商户的MD5密钥(该密匙可在登陆商户管理界面后自行更改。
)网银在线支付>>>商户支付完成后页面转到商户,从网银在线支付返回的消息格式为:<form method=get action="v_url" target=_self><input type="hidden" name="v_oid" value=""><input type="hidden" name="v_pstatus" value=""><input type="hidden" name="v_pstring" value=""><input type="hidden" name="v_pmode" value=""><input type="hidden" name="v_md5str" value=""><input type="hidden" name="v_amount" value=""><input type="hidden" name="v_moneytype" value=""><input type="hidden" name="remark1 " value=""><input type="hidden" name="remark2" value=""></form>该消息格式详细解释如下:v_url是该笔订单提交时参数v_url 的值,即网银返回到商户的接口地址。
package .vnvtrip.china.pay.proxy;import staticmons.ChinaPayConstants.CHINABANK_NOTIF Y_URL_HTTP;import staticmons.ChinaPayConstants.CHINABANK_PAY_H TTPS;import staticmons.ChinaPayConstants.CHINABANK_PAY_M D5_KEY;import java.util.HashMap;import java.util.Map;import java.util.Properties;import mons.codec.digest.DigestUtils;import mons.Env;import mons.HTTPClient;/**** 网银接口服务的代理** @author longgangbai**/public class ChinaPayProxy {* 在下訂單時采用的的Md5加密的信息: MD5校验串生成方法:当消费者在商户端生成最终订单的时候,将订单中的v_amount* v_moneytype v_oid v_mid v_url key六个参数的value值拼成一个无间隔的字符串(顺序不要改变)。
* 参数key是商户的MD5密钥(该密匙可在登陆商户管理界面后自行更改。
)** @param v_amount* @param v_moneytype* @param v_oid* @param v_mid* @param v_url* @param key* @return*/private static String getMd5Sign(String v_amount, String v_moneytype,String v_oid, String v_mid, String v_url, String key) {StringBuffer sb = new StringBuffer();sb.append(v_amount);sb.append(v_moneytype);sb.append(v_oid);sb.append(v_mid);sb.append(v_url);sb.append(key);byte[] bytes = DigestUtils.md5(sb.toString());String md5info = new String(bytes).toUpperCase();return md5info;}/*** 调用支付网关接口网址银行结帐的接口代理(本人习惯采用Commons-httpclient实现)* 用途:用来接受商户发给网银在线服务支付的订单信息** @param v_mid* 商户编号(非空)* @param v_oid* 订单编号(非空)(格式:订单生成日期(yyyymmdd)-商户编号-商户流水号)字段不可超过64位* @param v_amount* 订单总金额(非空)* @param v_moneytype* 货币类型(非空) 0:RMB1美元* @param v_url* (非空) 支付的动作完成时返回的该url,支付结果以post方式* @param v_md5info* 订单md5校验码* @param remark1* 备注字段1(可选字段)* @param remark2* 备注字段2(可选字段)* @param v_vmd* yyyymmdd 备注字段2(不可为空字段)* @param v_rcvname* 收货人姓名(自定义非网银必须字段)* @param v_rcvaddr* 收货人地址(自定义非网银必须字段)* @param v_rcvtel* 收货人电话(自定义非网银必须字段)* @param v_rcpost* 收货人邮编(自定义非网银必须字段)* @param v_orderstatus* 商品信息(自定义非网银必须字段)* @param v_ordername* 订货人姓名(自定义非网银必须字段)* @param v_orderemail* 订货人邮件(自定义非网银必须字段)* @return*/public static boolean chinaBankPayCheck(String v_mid, String v_oid, String v_amount, String v_moneytype, String v_url, String remark1, String remark2, String v_rcvname, String v_rcvaddr,String v_rcvtel, String v_rcpost, String v_orderstatus,String v_ordername, String v_orderemail) {Properties p = Env.getEnv().getProperties();String md5key = p.getProperty(CHINABANK_PAY_MD5_KEY);String v_md5info = getMd5Sign(v_amount, v_moneytype, v_oid, v_mid, v_url, md5key);Map<String, String> paramMaps = new HashMap<String, String>(); paramMaps.put("v_mid", v_mid);paramMaps.put("v_oid", v_oid);paramMaps.put("v_amount", v_amount);paramMaps.put("v_moneytype", v_moneytype);paramMaps.put("v_url",p.getProperty(CHINABANK_NOTIFY_URL_HTTP));paramMaps.put("v_md5info", v_md5info);paramMaps.put("remark1", remark1);paramMaps.put("remark2", remark2);paramMaps.put("v_rcvname", v_rcvname);paramMaps.put("v_rcvaddr", v_rcvaddr);paramMaps.put("v_rcvtel", v_rcvtel);paramMaps.put("v_rcpost", v_rcpost);paramMaps.put("v_orderstatus", v_orderstatus);paramMaps.put("v_ordername", v_ordername);paramMaps.put("v_orderemail", v_orderemail);return HTTPClient.executeHttp(CHINABANK_PAY_HTTPS, paramMaps, null);}/*** result为支付完毕接受的结果的map 校验检测在网银支付数据是否被拦截的** @param v_oid* 获取结果中的訂單编号* @param v_pstatus* 获取訂單的支付状态* @param v_pstring* 支付的结果* @param v_amount* 实际支付的金额* @param v_moneytype* 实际支付的币种* @param v_md5str* 获取訂單校验的MD5验证* @return*/public static boolean checkPayOff(String v_oid, String v_pstatus,String v_pstring, String v_amount, String v_moneytype,String v_md5str) {Properties p = Env.getEnv().getProperties();String md5key = p.getProperty(CHINABANK_PAY_MD5_KEY);String checkmd5 = getCheckMd5(v_oid, v_pstatus, v_amount, v_moneytype, md5key);if (checkmd5.equals(v_md5str)) {return true;}return false;}/*** 得到网银訂單付款后Md5加密检查** @param v_oid* @param v_pstatus* @param v_amount* @param v_moneytype* @param key* @return*/private static String getCheckMd5(String v_oid, String v_pstatus, String v_amount, String v_moneytype, String key) {StringBuffer sb = new StringBuffer();sb.append(v_oid);sb.append(v_pstatus);sb.append(v_amount);sb.append(v_moneytype);sb.append(key);byte[] bytes = DigestUtils.md5(sb.toString());String md5info = new String(bytes).toUpperCase();return md5info;}}来自/blog/4978722010-02-09建设银行对接(一)文章分类:Java编程这几天项目需要对接建设银行的支付和查询功能,在支付和查询的时候将系统链接到建行指定的页面上,由于这些页面是基于互联网的,开放的,所以需要对数据加密和数字签名。