网上支付接口开发

 

目前,在开发电子商务类型的网站时,必须要整合网上支付的功能。用户可以直接通过网上银行付款。也是第一次接触网上支付接口的开发,不过提供网上支付功能的供应方都会提供一份接口开发的文档说明,开发的业务也不太复杂,最主要的是数据组装和加密的问题了,至于支付结果或是其他结果接收都差不多。

本人目前的项目接触的网上支付有支付宝,中国农行,中国建行和中国工行。

先说说开发的文档吧

文档最满意的是支付宝的文档。主要有2份:即时到账交易接口(create_direct_pay_by_user).pdf支付宝即时到账接口集成教程.pdf。集成教程比较详细的介绍了集成的步骤。基本上可以认为是从零开始介绍的,介绍的很全面。即时到账交易接口自然是接口的使用教程。这是根据商户选定的支付套餐而定的,如果选择的是其他的套餐对应的是相应的接口文档说明。

农行的文档也比较详细,按照步骤进到商户文档中下载的B2C支付_JAVA_2.0.8.zip解压后在doc目录可以看到5份文档。

主要是接口编程指南文档。里面详细介绍的集成步骤和接口使用,文档的后部分还有例子和响应码对应表等。

建行和工行的文档就差多了。感觉写的有些乱。建行下载的开发包有2个。

电子商务上最好把网上支付结果查询接口也整合进去。但对于单纯的支付来说,只关心支付接口,解压后2份文档

只需要研究接口规范文档就行了。

工行的很干脆,至少手上拿到的只有中国工商银行网上银行新B2C在线支付接口说明V1.0.0.11(20100910).doc。基本上和建行的文档写的类似。

声明:本人拿到手的文档不具代表性,因为可能人家没太重视,随便给了份能用的。

再谈谈开发网上支付集成的事

支付宝提供了2套字符编码的项目例子,基本集成也蛮方便的。具体看文档……。对于配置来说,提供了AlipayConfig.java来进行配置。

农行的集成需要加入TrustPayClient-V2.0.8.jar,还有个TrustMerchant.properties文件需要放到项目的classpath下,只要在classes目录里存在该配置文件就行。同时还需要证书库和证书等。

这些都需要配置在TrustMerchant.properties里。里面有个农行根证书文件密码是changeit,这里不需要更改,因为密码就是changeit。其他配置正确后即可。其实可以多参考下demo里的例子jsp。写的都蛮详细的。注意有些和字段比较怪。这边属性叫OrderAmout,那边返回xml形式的却要tResult.getValue("Amount")。还有如果通知方式选择的是服务器通知的话,记得返回的页面一定要按照要求。在页面里加入标签<URL>,最好复制例子的页面进行修改。开发好后,也可以插入农行给的管理员商户的K宝,登录进农行的商户后台,去里面的商户测试里填写通知url进行测试,看是否按农行的要求编写的页面。基本上农行的支付,查询和退款都有自己的api调用,开发起来蛮方便的。

建行的集成提供了2jarnetpay.jar,在项目中加入netpay.jar即可。这个jar基本上是对数据的加密和验签等处理,没有其他丰富的api方法封装等。建行的网上支付只需要组装正确的url,然后getpost提交。然后需要自己写个md5方法对组装成的数据进行相应的md5加密。

工行的咋一看蛮复杂的,不过仔细研究下提供的开发实例源码。发现是将需要的数据组装成xml的形式,然后表单post提交到正确的url地址就行了。在ICBC_FILES\config\下提供了b2c_v_1_0_0_1.cfg配置文件,如果想自己写配置文件也行,然后解析初始化即可,总觉得例子中提供的组装xml数据有些累赘,因此自己重写组装也可以。

支付结果查询的开发

在开发支付宝支付接口的时候,没考虑支付结果的问题,因为支付宝想得比较周到,提供了2中通知方式,一种是在客户在网上支付后,同步把支付的结果返回给商户,另一种是服务器的异步发送支付结果给商户,如果第一种情况出现了异常,比如突然断网,断电等异常情况,无法把支付结果及时返回到商户的时候,会采用第二种不断的通知。具体通知条件属性可以看文档的介绍。后来接触了其他银行的网上支付结果返回,发现情况比较多,可能有订单支付可疑的问题(虽然出现的概率极低,非常低,银行人员的解释为基本没出现过。)

而且不是所有的银行都提供了服务器发送结果的功能。因此还需要一个支付结果查询的功能。这里顺便说下,对于支付结果接收的功能基本上类似。支付宝,农行都采用url接收的方式,工行需要写个接收类来处理,都是在商户这边编写代码。建行的比较恶心,需要登录到建行的商户后台去设置。

农行的查询调用api即可,比较简单。

工行的查询提供了APITrade.java来调用,组装数据的时候需要注意下数据的格式,比如时间。

建行的查询比较恶心,文档介绍的是2种,一种是直接在页面显示,一种是返回xml格式的数据。而且建行查询的时候要填上支付时间,这个太不合理了。好吧,肯定需要对支付结果进行接收然后判断处理,只能选择xml数据返回,因此需要自己写接收数据,然后xml解析出想要的结果来。使用了httpclient。这里非常值得强调的一点是,使用GetMethod的时候,注意设置:

 

Java代码   收藏代码
  1. getMethod.setRequestHeader("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)");    
  2.         getMethod.setRequestHeader("Content-Encoding","text/html");    
  3.         getMethod.setRequestHeader("Content-Type","text/xml; charset=GB2312");    
  4.         getMethod.setRequestHeader("Accept-Language""zh-cn");    
  5.         getMethod.setRequestHeader("Connection","close");   
 

 

不设置的话接收不到任何结果,可能是建行返回的xml数据格式不规范原因。然后解析其RESULT节点就行了。

总结

在配置相应的信息的时候,一定要仔细配置,最好把配置好的文件发给和你对接的银行人员检查。有些配置不清楚的一定要搞清,一般返回的错误信息还是准确的,但有些时候明明是配置文件中的某项配置错误了,返回的提示却牛头不对马嘴,很是蛋疼。比如在配置建行的一个分行编号的时候,询问了银行人员配置的是省级分行编号还是市级分行编号,起先回复说市级,然后测试就是不对,检查了好久的数据组装,后来直接把配置文件发给银行人员后,改成省级就测试通过了。因此一定要先确保配置文件或一些配置信息先填写正确。

总体感觉支付宝的开发是最贴心的,包括开发后的测试都很贴心(其他的有些直接不提供测试用的环境或测试数据)。因此整合支付宝的在线支付是最快的。农行的服务态度是最好的,谈了业务后,农行直接来人帮你配置基础数据,然后下载文档和证书等都一起服务。只不过刚开始用的是测试环境,很多操作不能用,提示也不太对,有些地方和文档的也有些出入,需要联系农行开通业务后才行。不过,中途经常会电话来指导。服务很周到。工行的对接人员服务也蛮好的,基本上网上咨询问题的时候,都会回复,虽然有些回答不太对,由于某些原因,工行的业务没下来,因此真实环境的测试还没有,可能有些地方说的不对,见谅。建行的就差点了,可能是对接的人员是个业务员,很多问题都不太懂,回答的也不及时。

最后说一点,不要指望和你对接的相关人员帮你解决技术问题,可能有些连怎么配置相应文件都不会。所以看文档最重要,觉得有些出入的再问,我在做工行接口时文档中有个参数不是必填项的,老是报错,结果对方发了份比较新的文档给我,里面却改成了必填。折腾啊。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
《支付宝网上支付接口(即时到账接口开发文档及其代码实例)》 警告:本资源仅用于开发学习交流使用。版权支付宝所有。 提供最全的支付宝即时到账接口开发文档及其代码实例,里面包含了ASP,PHP(GBK和UTF-8两个版本),.NET(GBK和UTF-8两个版本),JAVA(GBK和UTF-8两个版本),共计7个版本的接口实例。 附带两个PDF: 一个PDF是图解操作支付宝操作(下载接口,如何签约你的账号,以及配置和测试等)。 另一个PDF是支付宝标准快速付款接口文档 《支付宝接口集成指南.pdf》目录: 支付宝接口集成指南 .................................................................................................................................. 1 一、 下载接口案例 ............................................................................................................................... 2 二、 查询您签约的账号使用权限信息 ............................................................................................... 3 三、 按照使用说明文件中的说明配置 ............................................................................................... 4 四、 在对应的开发环境中进行接口单独测试 ................................................................................... 4 1. 创建请求命令: .................................................................................................................................... 4 2. 验证返回信息: .................................................................................................................................. 4 五、 收银台的显示界面 ....................................................................................................................... 5 1. 标准双接口.......................................................................................................................................... 5 2. 即时到账接口 ...................................................................................................................................... 5 3. 担保交易接口 ...................................................................................................................................... 6 六、 整合到自己的网站平台上。 ....................................................................................................... 7 七、 在B2C 网站开发和C2C 网站开发中针对支付宝接口如何设计? ....................................... 7 1、 B2C 模式: ...............................................

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值